• 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一样)           
  • 相关阅读:
    Nginx和PHP-FPM的启动、重启、停止脚本分享
    [Linux]Fedora19修复被Windows干掉的引导
    [Linux]RHEL/CentOS6配置tomcat使用80端口(与httpd整合)
    [Linux]SAMBA共享打印机
    [Linux]配置Logwatch使用第三方smtp发送电子邮件
    [oVirt]在双网卡网络环境下使用oVirt LiveCD
    走进Linux世界主题讲座纪录
    mysql用户及权限复制
    记一次失败的K8S安装部署
    HTTP状态码与爬虫
  • 原文地址:https://www.cnblogs.com/sharecorner/p/6184324.html
Copyright © 2020-2023  润新知