您的位置:首页 > 编程语言 > PHP开发

Qeephp框架

2015-12-10 13:57 567 查看
1.下载:

2.安装:
http://127.0.0.1/qeephp/script/web_chili.php
在网页中输入如下信息:

输入应用程序名称: myapp

在何处创建应用程序 d:/wwwroot

要使用的应用程序模板: 虚拟主机应用程序模板

点击开始创建

3. 查看安装是否成功: http://127.0.0.1/myapp/
4. 认识目录:

myapp

---app 应用程序目录

---config 应用程序所有配置文件

---lib 应用程序下的所有第三方库文件

5. 命名规则

所有文件名小写

控制器命名规则:

app/controller/控制器名_controller.php

控制器类名: 首字母大写 命名规则通文件名相反 Controler_控制器名.php

动作名: public function action动作名(){ .......... }

默认调用: actionIndex()

模型命名规则:

app/model/模型名.php

app/model/behavior/模型行为插件代码

注意: 如果你的模型命名是 xxxx_yyyy.php

像这种命名规则是:

app/model/目录名/模型名.php

视图命名规则:

在视图view/目录下面 _elements 和_layouts。分别用于存储视图片段文件和布局视图文件。

视图下面的子目录名就是控制器名 页面名称就是控制器下的动作名称

6. 分析程序流程:

浏览器--->解析url路由--->调用相应的控制器--->view

|

--->model

7. 构建hello word

文件名:

myapp/_code/app/controller/hello_controller.php

控制器类:

class controller_hello extends Controller_Abstract {

public function actionMsg(){

echo 'hello word';

}

}

url路由:
http://127.0.0.1/myapp/index.php?controller=hello&action=msg
8. 准备开发:

在任何开发之前需要准备好你的数据库:

修改配置文件:

configs/database.yaml

9. 认识yaml:

QeePHP 为了方便开发者,大量使用了 YAML 格式的文件来存储配置信息。因此掌握阅读和书写 YAML 格式文档的基本知识是很有必要的。

YAML 格式本身具有非常强大的表达能力,常用的有下面几种:

名值对,例如 key => value,这和 PHP 中以字符串做键名的数组一样;

列表,例如 value1, value2,这和 PHP 中以数字做键名的数组一样;

多行文本。

名值对

最简单的名值对:

my_name: zhanghua #这个是注释哦

注意: ":"和值之间必须有至少一个空格。

它等价于php

array('my_name'=>'zhanghua')

嵌套的名值对

#### 首页显示设置

homepage:

# 首页内容缓存时间(秒)

cached_lifetime: 300

# 首页上显示多少条最新主题文章

topics_num: 2

# 首页上显示多少条最新社区活动

activities_num: 3

注意: cached_lifetime 等键是 homepage 键的次级,所以

cached_lifetime 前面有两个空格作为缩进。使用两个空格作为一级缩进

是YAML的约定,不能使用制表符(Tab)来代替,务必注意这一点。

等价于:

array(

'homepage' => array(

'cached_lifetime' => 300,

'topics_num' => 2,

'activities_num' => 3,

)

)

列表

简单的列表:

- value1

- value2

- value3

- [value1, value2, value3]

注意: 注意第二种写法前面的“-”必不可少,并且要跟随至少一个空格。

等价于:

array('value1', 'value2', 'value3')

名值对和列表的混用

名值对和列表混用是很常见的写法

# 后台管理菜单标签

admin_tabs:

'首页':

-

title: '主题文章'

udi: 'admin::topics/index'

-

title: '社区活动'

udi: 'admin::activities/index'

'项目':

-

title: '项目管理'

udi: 'admin::projects/index'

'应用':

-

title: '应用展示管理'

udi: 'admin::cases/index'

等价于

array(

'admin_tabs' => array(

'首页' => array(

array('title' => '主题文章', 'udi' => 'admin::topics/index'),

array('title' => '社区活动', 'udi' => 'admin::activities/index'),

),

'项目' => array(

array('title' => '项目管理', 'udi' => 'admin::projects/index'),

),

'应用' => array(

array('title' => '应用展示管理', 'udi' => 'admin::/cases/index'),

),

),

)

10. 使用脚手架.

QeePHP 提供了基于 Web 界面的工具来帮助开发者完成许多的controller/model的工作,尽量减少重复劳动。
http://localhost/myapp/_devel/scripts/websetup.php
控制器自动生成:

WebSetup 中选择

“代码生成器 -> 列出控制器 –> 创建新控制器”,

然后输入控制器名称“Tasks”后点击“创建控制器”按钮即可自动生成控制器的类定义文件。

在php5.4.x版本中解决qeephp源代码中 namespace错误 : 由于在php5.3以后 namespace 是默认关键字 所以需要重命名 在定义的时候和调用的时候都重新命名就ok 啦

在php5.4.x版本中解决qeephp源代码中 set_magic_quotes_runtime(0); 错误的解决方案:

if(get_magic_quotes_runtime())

{

// Deactive

set_magic_quotes_runtime(false);

}

*****************

完成之后:

Create file "D:\wwwroot\myapp\_code\app\controller\user_controller.php" successed.

Create directory "D:\wwwroot\myapp\_code\app\view\user" successed.

脚手架会自动为我们在app\controller\下面创建user_controller.php 以及相应的视图文件

模型自动生成:

模型类与表模型的规则

数据表: 建议使用 复数

模型类: 建议使用 单数

比如: users 表 对应模型是 User

mysql> use myapp_devel_db;

Database changed

mysql> create table users(

-> id int primary key auto_increment,

-> uname char(30) not null,

-> upwd char(30) not null,

-> uemail char(50) not null,

-> uaddres char(100) not null

-> )engine=myisam charset=utf8;

Query OK, 0 rows affected (0.05 sec)

完成之后:

Create file "D:\wwwroot\myapp\_code\app\model\user.php" successed.

11.正式编码之前的思考:

用对象来思考

QeePHP 应用中,模型的唯一用途就是封装业务逻辑,以便将逻辑从表现层中提取出来。

QeePHP 的 MVC 真正实现了逻辑与表现的分离。模型充分实现了业务逻辑,而表现与交互都由控制器和视图配合完成。

理解领域:

领域=问题+解决问题所需要的知识

需求分析:

需求分析的主要工作就是分析用户想要实现的功能,找出可行的解决方案,并且整理为下一步开发工作需要的资料

确定模型间的关系

对象间有三种最重要的关系:依赖、关联和泛化。

依赖是使用关系。例如“台灯”依赖“灯泡”来发光。

关联是对象间的结构关系。例如“用户”与一组“任务”相关。

泛化是对象间的继承。例如“VIP 用户”类是“用户”类的继承类。

按照上述的简单规则,我们可以列出模型应该具备的行为:

User模型:

login 登录

logout 注销

createTask 创建属于该用户的任务

loadTasks 载入属于该用户的任务

deleteTasks 删除用户

由于任务不可能脱离用户存在,所以大部分行为都集中在 user 模型中.

12. 开始编写代码

访问我们上面创建的控制器 User 中的 index方法
http://127.0.0.1/myapp/index.php?controller=user&action=index
13.编写view层

命名规则:

视图文件名: 控制器中的动作名称

视图文件目录: 控制器名

视图文件后缀名; .php

url() 函数

在视图中,我们使用了 url() 函数。这个函数在 QeePHP 框架中承担着非常重要的职责:生成有效的 URL 地址。

视图的动态部分使用php语法实现

在视图中加载静态 $_BASE_DIR

视图layout

存放地址: app/view/_layouts/布局名_layout.php

子类继承父类模板

<?php $this->_extends('_layouts/布局名_layout'); ?>

调用elements元素

存放地址: app/view/_elements/元素名_element.php

调用方式: <?php $this->_element('元素名'); ?>

----------------------------------

实现界面之后,就是模型了

QeePHP 是一个遵循“领域驱动开发”思想的框架。而领域驱动中,最重要的就是模型。我们的大多数功能都是和模型有关的.

先前创建的 User 模型只是半成品,现在我们需要对其进行完善。一个模型由几个方面组成:

属性:定义模型有哪些属性、属性的类型以及属性的行为和验证规则等

行为:添加实现业务逻辑需要的方法,让模型逐步逼近实际的需求

数据:由属性和存储模型属性的数据表组成,但属性不一定要和数据表一一对应

关系:模型需要互相配合来实现业务需求,因此关系也是模型的一部分

$data=Nav::find('nisshow=?','y')->order('norderBy desc')->getAll();

等价于 select * from table where (nisshow='y') order by norderBy desc

14. 修改路由

启用url路由:

    1、讲工程目录中的 _htaccess 改名或复制为 .htaccess

    2、修改 configs/environments.yaml 文件

      dispatcher_url_mode: standard  改为  dispatcher_url_mode: rewrite

    3、添加新的路由规则

      实际上这个路由就可以用了。但是想要添加更多的路由规则可以根据默认的路由规则进行设置。实际上就是变量的取得而已。

_default_:

pattern: /:controller/:action/*

defaults:

controller: default

action: index
http://qee13.com/docs/qeephp-quickstart/ --教程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: