资讯专栏INFORMATION COLUMN

ThinkPhp学习笔记(一)

imtianx / 1917人阅读

摘要:如上为三个模块行为行为是在预先定义好的一个应用位置执行的一些操作。发生作用的位置称之为钩子,当应用程序运行到这个钩子的时候,就会被拦截下来,统一执行相关的行为。给某一个钩子绑定相关行为就成了一种类编程的思想。

ThinkPhp5.0
Composer: php世界里的包管理器
目录结构
project  应用部署目录
├─application           应用目录(可设置)
│  ├─common             公共模块目录(可更改)
│  ├─index              模块目录(可更改)
│  │  ├─config.php      模块配置文件
│  │  ├─common.php      模块函数文件
│  │  ├─controller      控制器目录⭐️
│  │  ├─model           模型目录⭐️
│  │  ├─view            视图目录⭐️
│  │  └─ ...            更多类库目录
│  ├─command.php        命令行工具配置文件
│  ├─common.php         应用公共(函数)文件
│  ├─config.php         应用(公共)配置文件
│  ├─database.php       数据库配置文件
│  ├─tags.php           应用行为扩展定义文件
│  └─route.php          路由配置文件
├─extend                扩展类库目录(可定义)
├─public                WEB 部署目录(对外访问目录)
│  ├─static             静态资源存放目录(css,js,image)
│  ├─index.php          应用入口文件⭐️
│  ├─router.php         快速测试文件
│  └─.htaccess          用于 apache 的重写
├─runtime               应用的运行时目录(可写,可设置)
├─vendor                第三方类库目录(Composer)
├─thinkphp              框架系统目录
│  ├─lang               语言包目录
│  ├─library            框架核心类库目录
│  │  ├─think           Think 类库包目录
│  │  └─traits          系统 Traits 目录
│  ├─tpl                系统模板目录
│  ├─.htaccess          用于 apache 的重写
│  ├─.travis.yml        CI 定义文件
│  ├─base.php           基础定义文件
│  ├─composer.json      composer 定义文件
│  ├─console.php        控制台入口文件
│  ├─convention.php     惯例配置文件
│  ├─helper.php         助手函数文件(可选)
│  ├─LICENSE.txt        授权说明文件
│  ├─phpunit.xml        单元测试配置文件
│  ├─README.md          README 文件
│  └─start.php          框架引导文件
├─build.php             自动生成定义文件(参考)
├─composer.json         composer 定义文件
├─LICENSE.txt           授权说明文件
├─README.md             README 文件
├─think                 命令行入口文件
架构 模型-视图-控制器
thinkphp5.0 is based on mvc

一个控制器包含多个操作(方法),操作方法是一个URL访问的最小单元。

http: //serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...]

eg: localhost:8080/in`dex.php/index/method

模型类通常完成实际的业务逻辑和数据封装,并返回和格式无关的数据。

ThinkPHP的模型层支持多层设计,可以将模型更加细分,例如把模型层分为逻辑层/服务层/事件层等等。

控制器调用模型类后返回的数据通过视图组装成不同格式的输出

5.0的URL访问受路由决定,如果关闭路由或者没有匹配路由的情况下,则是基于

http: //serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/参数/值…

应用与模块

一个典型的应用是由多个模块组成的,这些模块通常都是应用目录下面的一个子目录,每个模块都有自己独立的配置文件、公共文件和类库文件。如上index/test/test2为三个模块


行为Behavior

行为(Behavior)是在预先定义好的一个应用位置执行的一些操作。

发生作用的位置称之为钩子,当应用程序运行到这个钩子的时候,就会被拦截下来,统一执行相关的行为。给某一个钩子绑定相关行为就成了一种类 AOP编程的思想。

在应用程序中进行行为侦听

// 在app_init位置侦听行为
	hinkHook::listen("app_init");

然后对某个位置进行行为绑定:

// 绑定行为到app_init位置
	hinkHook::add("app_init","appindexehaviorTest");

入口文件和引导文件

入口文件

入口文件位置的设计是为了让应用部署更安全,public目录为web可访问目录,其他的文件都可以放到非WEB访问目录下面。

一般路径在../public/index.php

Index.php

// 应用入口文件

// 定义项目路径
define("APP_PATH", __DIR__ . "/../application/");
// 加载框架引导文件
require __DIR__ . "/../thinkphp/start.php";

引导文件

start.php文件就是系统默认的一个引导文件。在引导文件中,会依次执行下面操作:

加载系统常量定义;

加载环境变量定义文件;

注册自动加载机制;

注册错误和异常处理机制;

加载惯例配置文件;

执行应用;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/31814.html

相关文章

  • ThinkPHP5 学习笔记

    摘要:抽象数据库访问层作用对不同数据库的操作进行封装,最终达到用统一的操作方式操作不同数据库连接器隐藏不同数据库连接的差异,自动加载对应的数据库驱动查询构建起隐藏不同数据库的差异,自动拼接路由层什么是路由每个框架都具有路由功能,所谓路由就是用户请 抽象数据库访问层 作用:对不同数据库的操作进行封装,最终达到:用统一的操作方式操作不同数据库 连接器:隐藏不同数据库连接的差异,自动加载对应的数...

    you_De 评论0 收藏0
  • angularjs+springMvc学习笔记

    摘要:回调说白了,就是把函数当参数传给另一根函数,在另一个函数执行时调用此函数例如,在下面这段代码中,上面定义了两个函数和,下面的方法请求成功执行,失败执行异步异步的原理我看了网上的一些博客和例子,大都以定时任务为例子说明,但具体的原理我还是不太 回调 说白了,就是把函数当参数传给另一根函数,在另一个函数执行时调用此函数例如,在下面这段代码中,上面定义了两个函数success和error,下...

    dreamGong 评论0 收藏0
  • angularjs+springMvc学习笔记

    摘要:回调说白了,就是把函数当参数传给另一根函数,在另一个函数执行时调用此函数例如,在下面这段代码中,上面定义了两个函数和,下面的方法请求成功执行,失败执行异步异步的原理我看了网上的一些博客和例子,大都以定时任务为例子说明,但具体的原理我还是不太 回调 说白了,就是把函数当参数传给另一根函数,在另一个函数执行时调用此函数例如,在下面这段代码中,上面定义了两个函数success和error,下...

    rozbo 评论0 收藏0
  • 入手thinkjs,学习笔记

    摘要:最近刚刚学习了一个的开发框架,最重要的是可以用开发传送门以下是学习过程中的笔记上面时全局安装完成后用检查是否成功创建了一个名为的项目,然后进入目录,安装依赖,启动项目,浏览器打开就可以看到页面了。 最近刚刚学习了thinkjs--一个node的MVC开发框架,最重要的是可以用es6/es7开发【传送门】 以下是学习过程中的笔记: npm install thinkjs@2 -g --v...

    shuibo 评论0 收藏0
  • 关于ThinkPHP5中使用 Auth2 验证的实现

    在tp上实现的auth2验证的,在网上发现笔记很少, 不像yii, 故在此发表一下笔记,用来帮助有相关需求的朋友 PS: 鉴于oauth2有四种方案, 本实例是基于 客户端凭证 实现,其他三种就不讲述了 一、通过composer安装 composer require --prefer-dist bshaffer/oauth2-server-php 安装完成后,如图:showImg(https://...

    alaege 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<