Qeephp框架

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/  --教程








  








     
















  






   
   
   
 
 

你可能感兴趣的:(PHP,框架,qeephp)