think PHP5框架学习笔记

介绍

关于MVC

       MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

MVC的优势

  1. 耦合性
  2. 重用性
  3. 可维护性高
  4. 有利于软件的工程化

think PHP5 安装

开发环境介绍(需要满足以下条件)

  1. php >= 5.4.0
  2. PDO MbString CURLPHP Extension
  3. mysql >= 5.5
  4. Apache Nginx   

Git方式安装框架

官网网址:https://github.com/top-think

Composer方式安装框架

官网网址:http://www.phpcomposer.com

下载命令:$ composer create-project --prefer-dist topthink/think 目录名

Download官网安装

官网网址:http://www.thinkphp.cn

选择版本安装包下载后解压到项目目录即可

之后:设置项目根目录

TP5 目录和文件开发规范

  • 目录以小写+下划线的方式命名;
  • 类库函数文件名以.php结尾;
  • 类的文件名均以命名空间定义,且命名空间和类库文件所在路径一致;
  • 类文件采用驼峰 首字母大写  其余文件为小写+下划线命名;
  • 类名与类文件名保持一致,采用驼峰命名 首字母大写;
  • 类采用驼峰命名 首字母大写不需要添加后缀;
  • 函数使用驼峰命名 首字符小写 如(getUserInfo);
  • 属性名采用驼峰 首字母小写 如(tableName)'
  • 以双下划线 ——开头的函数或者方法为魔术方法 如(——construct);
  • 常量以大写字母和下划线命名 如(‘APP_PATH’);
  • 配置参数以小写字母和下划线命名;
  • 数据库的库 表和字段采用小写+下划线的命名方式  不能以下划线开头;
  • 应用类库的命名空间应统一为 app(可以配置)如:namespace app\index\controller;

模块设计

5.0版本对于模块的功能做了灵活设计,默认采用多模块的构架,并且支持单一模式设计,所有模块的命名空间均以app作为根命名空间(可配置更改);即跟目下一个模块就是一个文件夹;

方便管理,通常定义app\admin 文件夹是后台的项目模块

app\home 文件夹是前台的项目模块

app\common 文件夹是前后台公共使用的部分

cmd到项目的跟控制器目录下使用命令创建控制器

<?php 
namespace app\agent\controller;
use app\common\controller\Base;

class Index extends Base
{
	// 根目录下agent进入模块首页
	public function index()
	{
	    return $this->view->fetch('index/index');
	}

}

搜索+分页+带搜索条件

// 多条件搜索 显示页面
	public function memberList()
	{	
        
        //设定空数据查询条件
        $arr = [];

        //接收查询条件一
        if ($account = Request::param('account')){
            $arr[] = ['account','like',"%{$account}%"];
        }        

        //查询 分页 带值搜索
                    $data=Users::where('upid',3)->where($arr)->paginate(3)->appends(Request::param());
        $this->view->assign('count',$data->count());
        $this->view->assign('data',$data);  
        return $this -> view -> fetch('user/member-list');
	}

重定向

$this->redirect('路由地址',[变量列表],'后缀','域名开关');

猜你喜欢

转载自blog.csdn.net/weixin_42632372/article/details/81877041