摘要:如上为三个模块行为行为是在预先定义好的一个应用位置执行的一些操作。发生作用的位置称之为钩子,当应用程序运行到这个钩子的时候,就会被拦截下来,统一执行相关的行为。给某一个钩子绑定相关行为就成了一种类编程的思想。
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)是在预先定义好的一个应用位置执行的一些操作。
发生作用的位置称之为钩子,当应用程序运行到这个钩子的时候,就会被拦截下来,统一执行相关的行为。给某一个钩子绑定相关行为就成了一种类 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
摘要:抽象数据库访问层作用对不同数据库的操作进行封装,最终达到用统一的操作方式操作不同数据库连接器隐藏不同数据库连接的差异,自动加载对应的数据库驱动查询构建起隐藏不同数据库的差异,自动拼接路由层什么是路由每个框架都具有路由功能,所谓路由就是用户请 抽象数据库访问层 作用:对不同数据库的操作进行封装,最终达到:用统一的操作方式操作不同数据库 连接器:隐藏不同数据库连接的差异,自动加载对应的数...
摘要:回调说白了,就是把函数当参数传给另一根函数,在另一个函数执行时调用此函数例如,在下面这段代码中,上面定义了两个函数和,下面的方法请求成功执行,失败执行异步异步的原理我看了网上的一些博客和例子,大都以定时任务为例子说明,但具体的原理我还是不太 回调 说白了,就是把函数当参数传给另一根函数,在另一个函数执行时调用此函数例如,在下面这段代码中,上面定义了两个函数success和error,下...
摘要:回调说白了,就是把函数当参数传给另一根函数,在另一个函数执行时调用此函数例如,在下面这段代码中,上面定义了两个函数和,下面的方法请求成功执行,失败执行异步异步的原理我看了网上的一些博客和例子,大都以定时任务为例子说明,但具体的原理我还是不太 回调 说白了,就是把函数当参数传给另一根函数,在另一个函数执行时调用此函数例如,在下面这段代码中,上面定义了两个函数success和error,下...
摘要:最近刚刚学习了一个的开发框架,最重要的是可以用开发传送门以下是学习过程中的笔记上面时全局安装完成后用检查是否成功创建了一个名为的项目,然后进入目录,安装依赖,启动项目,浏览器打开就可以看到页面了。 最近刚刚学习了thinkjs--一个node的MVC开发框架,最重要的是可以用es6/es7开发【传送门】 以下是学习过程中的笔记: npm install thinkjs@2 -g --v...
在tp上实现的auth2验证的,在网上发现笔记很少, 不像yii, 故在此发表一下笔记,用来帮助有相关需求的朋友 PS: 鉴于oauth2有四种方案, 本实例是基于 客户端凭证 实现,其他三种就不讲述了 一、通过composer安装 composer require --prefer-dist bshaffer/oauth2-server-php 安装完成后,如图:showImg(https://...
阅读 3780·2021-09-23 11:32
阅读 2449·2021-09-06 15:01
阅读 1615·2021-08-18 10:24
阅读 3448·2019-12-27 11:44
阅读 3604·2019-08-30 15:52
阅读 2511·2019-08-30 11:11
阅读 669·2019-08-29 17:27
阅读 597·2019-08-29 16:22