thinkPHP学习笔记之安装配置篇

作者:hebedich 时间:2023-09-27 18:32:03 

国产框架thinkPHP,是一款MVC框架,这个框架最初模拟JAVA的struts框架,使用单一入口文件模拟JAVA的过滤器,使用action来模拟STRUTS的控制器ACTION,所以为什么他的MVC之中,M是model,V是view,而control却是action的原因。

    在3.2.3版本中,control改成了C,也是趋于形式,因为JAVA世界的springMVC开始流行,spring使用的control,不在使用action这种定义,其实action来表示control本身就有一定的误导,control就C嘛,为什么来一个aciton,让人摸不着头脑。

   thinkphp最难理解的是他的访问方式,在官方文档上面讲解有点误导人,按照官文一定出错,是因为官文没有讲清楚!

   thinkphp的安装其实很简单,只要require他的主程序文件,就可以生成一些列的目录,但是URL与他的control、tpl的关系是什么呢?官文说得实在太含糊了,但凡使用过JAVA的人都会被官文忽悠到吐血!

   官文,能否条理清楚点!?

   实际使用过后总结了以下几点:

1,安装thinkphp:

和主程序thinkPHP同目录下建立 admin.php或者其他的名字都可以

<?php
//定义项目名称和路径
define('APP_NAME', '');         //名字时空的时候,就是生成的文件夹前不加前缀
define('APP_PATH', './admin/');//这个是和主程序THINKPHP同目录下生成admin目录的意思
define('APP_DEBUG', true);//开始编辑模式,文件强制编译,不缓存
// 加载框架入口文件
require( "../ThinkPHP/ThinkPHP.php");//主程序入口文件

2,文件目录:

自动生成的文件目录是

common:写函数的地方

conf:配置文件,例如配置数据库连接地址

lang:语言包,国际化

lib:action,model都在这里面,是一个比较重要的地方,和JAVA的lib是JAR包完全不同概念

runtime:运行时的缓存文件

tpl:模板,就是html文件

3,访问方法:

URL:localhost/thinkphp/admin.php?m=Show&a=add

解释:本地/项目目录/刚才建立的单一入口文件?model=类名&action=方法名

意思:进入单一入口文件admin.php中的Show类中的add方法

强调:类名是大写开头,小写会找不到,这个把我害苦了,弄了一下午,原来是只认识大写类名,小写不认识

infopath风格URL:localhost/thinkphp/admin.php/Show/add

解释:和默认的一样,就是没有写出M A

4,写类,写方法:

thinkphp的作者一定是一个喜欢折腾的人,完美主义者,所以才会思考出这种方式来控制程序,整个程序都是以action类为核心,一个action类等于是一个页面,里面的方法就是和这个页面相关的操作,什么增删改查啊,这个很符合国人的思考方式,但是复用性并不高。

写文件:lib/action/ShowAction.class.php

<?php
//Show就是类名,Action只是一个识别辅助,必须写,但是可以调用的时候忽略,记得大写哦,你小写他也给你换成大写开头,让你弄死找不到小写show的模块,m=Show
class ShowAction extends Action {
//add就是action的方法,a=add
    public function add(){
    //输出页面CC,他自动加载默认TPL目录下Show文件下的cc.html文件,这里如果没有cc,就加载方法名字一样的add.html,如果cc.html与add.html都没有就报错
        $this->display('cc');
    }
}

5,写模板:

上面提到了加载模板,现在就写一个:

tpl/Show/cc.html

<html>一个普通HTML文件</html>
标签:thinkPHP,安装,配置
0
投稿

猜你喜欢

  • vue-cli npm如何解决vue项目中缺失core-js的问题

    2024-04-28 09:30:26
  • python实现批量解析邮件并下载附件

    2023-07-05 02:32:16
  • python pycharm的安装及其使用

    2023-11-04 20:27:06
  • 一篇文章快速了解Python的GIL

    2021-04-23 00:25:23
  • FrontPage创建HTML/ASP混合页面

    2008-05-08 14:26:00
  • flask上传作品之dbm操作的实现

    2022-06-29 15:25:41
  • python中kmeans聚类实现代码

    2023-09-27 19:49:44
  • 高性能PHP框架Symfony2经典入门教程

    2023-11-16 02:39:23
  • 用SQL建立索引的方法步骤

    2024-01-21 20:43:43
  • Python中XlsxWriter模块简介与用法分析

    2022-12-29 15:10:57
  • django静态文件加载的方法

    2022-12-26 13:57:56
  • Python基础语言学习笔记总结(精华)

    2023-08-26 21:37:23
  • 如何在网页中制作虚线表格

    2010-10-20 20:07:00
  • pytorch中的model.eval()和BN层的使用

    2023-09-21 17:06:10
  • MySQL数据库中与 ALTER TABLE 有关的问题

    2009-01-14 11:57:00
  • Python xpath表达式如何实现数据处理

    2021-09-02 22:07:15
  • python 匹配url中是否存在IP地址的方法

    2023-04-13 14:29:08
  • 如何提高网页的维护效率

    2009-03-01 11:33:00
  • python:解析requests返回的response(json格式)说明

    2023-11-05 15:43:25
  • 基于centos7快速安装mysql5.7教程解析

    2024-01-26 14:59:28
  • asp之家 网络编程 m.aspxhome.com