ThinkPHP学习第一天
Posted ChotocateCat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP学习第一天相关的知识,希望对你有一定的参考价值。
1 什么是框架? 2 1 是一堆代码的集合;2 一个半成品的应用; 3 包含了一些优秀的设计模式。 3 框架是一堆包含了常量和方法和类等代码的集合,它是一个半成品应用,还包括一些项目开发的时候所需要使用的底层框架,并不包括业务逻辑,好包括一些设计模式,如单例模式,工厂模式,ar模式,观察者模式。== 4 5 为什么要使用框架? 6 实际开发的时候会有一个成型的开发流程 7 项目需求调研,明确需要求项目开始--指定项目周期计划,功能分工---设计人员,制作效果图,后台开发数据库 -- 设计图昨晚交给前端写成页面--页面完成--后台实现功能--测试 -- 修改--上线 8 9 如果在上述流程中不使用框架进行开发会遇到那些问题? 10 1 代码风格不一样,维护困难,可能会造成项目生命周期短 11 2 一处小的修改,会牵扯出很多地方的修改 12 3 可扩展性差,存在局限性。 13 14 使用框架的好处 15 1 简单 快捷 高效 完成项目 16 2 底层已经被实现,专注于业务逻辑开发 17 3 便于处理多人协助开发中遇到的问题 18 19 市面上常用的框架 20 1 zend frameword 重量级 php官方开发的。运行慢的要死 21 2 Yii 重量级 优点 代码的可重用开发到极致 22 3 symfony 重量级 23 4 Laravel 轻量级 24 5 CodeIgniter 轻量级 25 6 Thinkphp 轻量级 国人开发,易于学习,是国人学习框架的最好入门。 26 27 MVC 是一个设计模式,强制用户的输入,逻辑,输出 相分离,把整个项目分成:控制器C,模型M,视图V三个部分。 28 29 编程中所经历的阶段 30 第一:混编 :将php和html写在一起;优点:效率高;缺点:不利于维护。 31 第二:模板引擎:smarty.优点:前台的输出和后台的逻辑代码相分离的思想,缺点:效率比第一种低 32 第三:MVC设计,一直沿用;优点:就是强制将用户的输入,逻辑,输出相分离,维护成本降低,;但是执行效率低。 33 34 Thinkphp框架介绍 35 出生于06年,最初的名字叫做FSC,07年 改名为:ThinkPHP,一款国人开发的框架,国人学习的周期会降低,学习成本降低,学习时间更高效,大量的中文注释,和中文论坛,官方的帮助文档。http://www.thinkphp.cn 36 37 文件结构: 38 Application 应用目录 39 Public 公告资源,比如css,js,图片== 40 ThinkPHP 框架的核心目录 41 .htaccess 分布式配置文件 42 composer.json 给composer软件使用的说明文档 43 index.php 项目的入口文件 44 README.md 说明文件 45 ThinkPHP核心目录: 46 Common 系统函数库目录,存放了functions.php 47 Conf 系统配置文件目录 48 Lang 语言包目录 49 Library ThinkPHP目录中的核心目录 50 Mode 51 Tpl 系统模板目录,包含系统用的模板 52 ThinkPHP.php 项目入口文件 53 54 conf 55 convention.php 系统配置文件 这是系统级别配置文件 还有应用配置文件 分组配置文件 56 从作用范围: 57 系统>应用>分组 58 从优先级: 59 分组>应用>系统 60 Library: 61 Behavior 行为文件目录 62 ORg 功能扩展目录 63 Think 最核心的目录 64 Vendor 第三方扩展目录 65 Think: 66 核心的: 67 Controller.class.php 68 Model.class.php 69 View.class.php 70 71 功能的: 72 Image.class.php 73 Page.class.php 74 Upload.class.php 75 Verify.class.php 76 77 配置站点 78 79 1 创建站点目录 80 2 配置Apache虚拟主机的配置文件 创建一个虚拟主机 81 apache/conf/extra/httpd-vhosts.conf 82 83 <VirtualHost *:80> 84 ServerAdmin 管理员邮箱 85 DocumentRoot 站点根目录 86 ServerName 站点绑定的域名 87 ServerAlias 站点别名 一般不带www 88 Errorlog 错误日志存放位置 在Apache/logs下 89 CustomLog 正常访问的日志 同上 90 对目录的详细配置 91 <Directory "站点目录地址"> 92 allow from all 运行所有访问 93 AllowOverride all 运行重写 94 Options +indexex 运行显示站点目录的文件结构 95 </Directory> 96 </VirtualHost> 97 restart Apache 98 3 修改hosts下的域名绑定 win/system32/drivers/etc/hosts 99 修改完毕ping 域名 检测是否成功绑定。 100 细节文件 101 在首次运行index.php入口文件会自动生成相应的目录结构,目录的名字取决于index.php中定义的常量APP_PATH 102 目录安全文件 103 在自动生成的文件夹中都有一个空白的html文件,目的为目录安全文件所有。 104 在Apache的配置中有 options+indexex 默认展示站点目录,如果站点目录不存在index开头的文件,则会展示目录结构,但是有了index.html就不会展示相应的目录结构。 105 106 一句话概括:防止列出站点的文件结构。 107 108 系统运行流程 109 在首次运行入口文件 的时候会经历68个流程进行目录的生成。 110 111 ThinkPHP中控制器的创建 112 第一:声明当前控制器类的命名空间 113 第二:引入父类控制器 114 第三:声明控制器并且继承父类 115 116 路由形式: 117 路由:是指访问项目中具体某个方法的URL地址 118 在ThinkPHP中系统提供了4中路由形式: 119 1 平台形式路由(get形式路由) 120 http://example.com/index.php?m=Home&c=User&a=test&id=1 121 问题:url传递的任何东西都会在url地址栏中显示出来不安全 122 2 Pathinfo 形式路由 123 http://example.com/index.php/Home/User/test/id/100 124 3 Rewrite形式路由 125 http://example.com/Home/User/test/id/100 126 tips:需要配置 .htaccess文件重写Apache。 127 4 兼容形式路由 128 http://example.com/index.php?=/Home/User/test/id/100 129 关于ThinkPHP中路由形式的配置 130 路由形式在ThinkPHp配置中的配置文件中。ThinkPHP/conf/convention.php 131 132 分组 133 一般的项目都会根据某个功能的使用对象来区分代码,这样放在一起会形成一个文件夹,这个文件夹就可以称为一个分组。分组就是平台,模块。 134 135 控制器的跳转 136 URL组装就是根据某个规则,来组成一个URL地址,这个功能就叫做url组装 137 在ThinkPHp中,系统提供了一个疯子的函数来处理url组装,这个方法教叫U 138 除了u方法还有:A,B,C,D,E,F,G,I,M,R,S 都在functions.php中 139 140 U(‘url路径‘,参数数组) 141 142 系统跳转提示: 143 $this->success(‘跳转提示‘,‘跳转地址‘,等待时间); 144 $this->error(‘跳转提示‘,‘跳转地址‘,等待时间); 145 以上两个方法都是继承于父类constroller 146 ThinkPHP视图 147 视图的创建:创建的位置需要是在分组目录下的View下与控制器同名的目录中。 148 视图的展示:$this->display() 展示当前控制器下与当前请求方法名一致的模板文件 149 $this->display(‘模板文件名[不带后缀]‘) 150 变量分配:$this->assign(‘模板中变量名‘,$var) 151 模板常量替换机制 152 __MODULE__ :标示从域名后面开始一直到分组名结束的路由 153 __CONTROLLER__:表示从域名后面开始一直到控制器接收的路由 154 __ACTION__:表示从域名后面开始一直到方法名结束的路由 155 __PUBLICE__ :站点跟目录下的Public目录的路由 156 __SELF__:表示从域名后面开始一直到路由的最后(如果没参数 和action一样)
以上是关于ThinkPHP学习第一天的主要内容,如果未能解决你的问题,请参考以下文章