• ThinkPHP框架基础


    什么框架:

             一堆代码的集合,里边有变量、函数、类、常量,里边也有许多设计模式MVC、AR数据库、单例等等。

             框架可以节省我们50-60%的工作量,我们全部精力都集中在业务层次。

    其他相关框架

    • 1. zendframework   zend php语言公司发布的官方框架,重量级(功能多)
    • 2. yii   美国华人开发的框架,xue qiang, qiang,  重量级框架,纯OOP框架
    • 3. CI  CodeIgniter轻量级框架,开发速度快,部署灵活
    • cakephp外国框架,重量级,速度慢
    • symfony外国重量级框架
    • ThinkPHP轻量级框架,国人框架,入门容易

     

    【框架项目部署】

    步骤:

    创建入口文件:

    1. 在ThinkPHP目录下创建一个入口文件index.php

     

    1. 访问入口文件的同时系统会自动把对应的应用目录文件Shop创建出来

     

    1. 打开Home文件夹

     

    【MVC模式】

    M:Model 数据模型层,负责数据操作

    V:View 视图层,负责显示视图

    C:Controller 控制器,实现业务逻辑

    【控制器访问及路由解析】

    通过url地址get参数找到指定的控制器,并进行对应方法调用请求

    http://网址/index.php?m=模块名称&c=控制器&a=方法

    以上url地址信息代码不够优雅、不安全。


    tp框架url地址可以由以下四种

    1. http://网址/index.php?m=XX&c=XX&a=XX   基本get模式
    2. http://网址/index.php/模块/控制器/操作方法路径模式pathinfo(默认)
    3. http://网址/模块/控制器/操作方法           rewrite重写模式
    4. http://网址/index.php?s=/模块/控制器/方法兼容模式

    action:操作,放在控制器里面的方法

    之前访问的方式:访问的具体页面

    MVC访问的方式:访问控制器下的操作(方法),不是一个具体页面

    具体url地址模式设置(配置文件ThinkPHP/Conf/convertion.php)

    URL_MODEL  =  0/1/2/3  分别代表四种url地址模式

     

    config.php是我们当前自己项目的配置文件,我们可以通过修改该文件达到配置变量的目录

    这个文件在系统运行过程中会覆盖convertion.php的配置变量

    include “convertion.php”;

    include “config.php”;  后引入的文件要把先引入的文件配置变量给覆盖掉

    MVC:约定胜于配置

    我们系统有兼容4中url地址模式的使用

    系统有的时候会自动创建url地址,它会根据当前模式进行url地址创建使用

    快捷函数U();  创建url地址

     

    通过url地址模式我们学习到了以下内容:

    1. 我们学习到了配置变量(核心配置变量conversion.php、当前应用配置变量config.php)
    2. 快捷函数U(“模块/控制器/方法”)  根据参数和url模式创建对应的url地址
    3. 把框架的模式调整为开发调试模式

    【开发、生产模式】

    开发调试模式:系统需要加载大概24个文件  index.php  define(“APP_DEBUG”,true);

    生产模式:系统只需要加载很少的大概7个文件在入口文件

    index.php中定义: define(“APP_DEBUG”,false);

    节省了许多文件的开发、关闭的系统开销,节省资源

    【控制器和对应方法创建】

    控制器是MVC模式中的核心,tp默认有一个Index控制器:

    Index控制器里面有一个操作方法:Index

    我们在访问http://localhost:8080/Thinkphp/index.php入口文件的时候,会默认访问Index控制器下面的Index方法

    如果要自己创建一个控制器Login:

    1. 在ShopHomeController文件夹下新建一个控制器文件LoginController.class.php

    注意:文件命名规则,按照驼峰法命名

    IndexController.class.php首字母大写

         2.打开该文件,在里面造控制器Login类

     

         3.如果要自定义操作方法,在控制器Login类里面加一个函数Login():

     

    这样我们就完成了控制器和操作方法的建立,如果要访问我们刚才的Login控制器下的Login方法:

     

         4.控制器中如果要调用视图层中的模板:

     

    这样再次访问,会发现报错:

     

    原因:模板文件没有创建,这时候我们就要去创建模板文件

    【视图模板文件创建】

    视图模板文件存放发位置在:

    里面没有模板文件

    如果我们想要访问Login控制器中的Login方法,首先我们要创建一个Login控制器对应的模板文件夹,该文件夹就对应着Login控制器:

    然后在Login文件夹下再创建一个login.html的模板文件来对应Login控制器下的Login方法:

    在login.html里面写入要显示的代码:

    <body>
    <h1>hello login</h1>
    </body>

    然后再次请求:

    【url地址大小写设置】

    默认是不敏感的:

    在config.php里边对url大小写敏感进行设置

    然并卵!!!

    【系统常量信息】

    获取系统常量信息:

    如果加参数true,会分组显示:

    var_dump(get_define_constants(true));

  • 相关阅读:
    AJ学IOS 之微博项目实战(10)微博cell中图片的显示以及各种填充模式简介
    AJ学IOS 之微博项目实战(9)微博模型之时间相关重要操作,判断刚刚,昨天,今年等等
    AJ学IOS 之控制器view显示中view的父子关系及controller的父子关系_解决屏幕旋转不能传递事件问题
    AJ学IOS 之UIDynamic重力、弹性碰撞吸附等现象
    AJ学IOS 之CoreLocation反地理编码小Demo输入经纬度得到城市
    AJ学IOS 之CoreLocation地理编码小Demo输入城市得到经纬度
    AJ学IOS 之CoreLocation指南针小应用
    AJ学IOS 之CoreLocation基本使用
    AJ学IOS 之第一次打开Xcode_git配置,git简单学习
    AJ学IOS 之微博项目实战(8)用AFNetworking和SDWebImage简单加载微博数据
  • 原文地址:https://www.cnblogs.com/zhaimiaoer/p/5589540.html
Copyright © 2020-2023  润新知