首页 > 代码库 > ThinkPHP学习第一天

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学习第一天