zoukankan      html  css  js  c++  java
  • 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一样)           
  • 相关阅读:
    我的浏览器收藏夹分类
    我的浏览器收藏夹分类
    Java实现 LeetCode 318 最大单词长度乘积
    Java实现 LeetCode 318 最大单词长度乘积
    Java实现 LeetCode 318 最大单词长度乘积
    Java实现 LeetCode 316 去除重复字母
    Java实现 LeetCode 316 去除重复字母
    Java实现 LeetCode 316 去除重复字母
    Java实现 LeetCode 315 计算右侧小于当前元素的个数
    Java实现 LeetCode 315 计算右侧小于当前元素的个数
  • 原文地址:https://www.cnblogs.com/sharecorner/p/6184324.html
Copyright © 2011-2022 走看看