当前位置:山东群英会技巧>文章>PHP

tp3.2.3的架构???/h2>

山东群英会技巧 www.iba5.com.cn 一.url模式

        ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式,可以设置URL_MODEL参数改变URL模式。

        1.普通模式:


普通模式也就是传统的GET传参方式来指定当前访问的??楹筒僮?,例如: //localhost/?m=home&c=user&a=login&var=value

m参数表示???,c参数表示控制器,a参数表示操作(当然这些参数都是可以配置的),后面的表示其他GET参数。

如果默认的变量设置和你的应用变量有冲突的话,你需要重新设置系统配置,例如改成下面的:

'VAR_MODULE'            =>  'module',     // 默认??榛袢”淞?
'VAR_CONTROLLER'        =>  'controller',    // 默认控制器获取变量
'VAR_ACTION'            =>  'action',    // 默认操作获取变量

上面的访问地址则变成: //localhost/?module=home&controller=user&action=login&var=value


    2.PATHINFO模式:

PATHINFO模式是系统的默认URL模式,://localhost/index.php/home/user/login/var/value/

    3.REWRITE模式:


REWRITE模式是在PATHINFO模式的基础上添加了重写规则的支持,可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则。

如果是Apache则需要在入口文件的同级添加.htaccess文件,内容如下:

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{REQUEST_FILENAME} !-d 
 RewriteCond %{REQUEST_FILENAME} !-f 
 RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
 </IfModule>

接下来,就可以用下面的URL地址访问了: //localhost/home/user/login/var/value

     4.兼容模式:


兼容模式是用于不支持PATHINFO的特殊环境,URL地址是: //localhost/?s=/home/user/login/var/value

可以更改兼容模式变量的名称定义,例如:

'VAR_PATHINFO'          =>  'path'

PATHINFO参数分隔符对兼容模式依然有效,例如:

// 更改PATHINFO参数分隔符
'URL_PATHINFO_DEPR'=>'-',

使用以上配置的话,URL访问地址可以变成: //localhost/?path=/home-user-login-var-value


二.MVC 

        MVC:(Model-View-Controller,模型-视图-控制器)


三.CBD

        CBD(核心Core+行为Behavior+驱动Driver)


四.命名空间

        命名空间是一种封装事物的方法。


            在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:

用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。

为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

五.自动加载

        自动加载优先级


       在实际的应用类库加载过程中,往往会涉及到自动加载的优先级问题,以Test\MyClass类为例,自动加载的优先顺序如下

判断是否有注册了Test\MyClass类库映射,如果有则自动加载类库映射定义的文件;

判断是否存在Library/Test目录,有则以该目录为初始目录加载;

判断是否有注册Test根命名空间,有则以注册的目录为初始目录加载;

如果以上都不成立,则以Test为??槟柯冀谐跏寄柯技釉?;

        然后以上面获取到的初始目录加载命名空间对应路径的文件;

六.应用模式

    ThinkPHP支持应用模式定义,每个应用模式有自己的定义文件,用于配置当前模式需要加载的核心文件和配置文件,以及别名定义、行为扩展定义等等。除了模式定义外,应用自身也可以独立定义自己的模式文件。

     *每个入口文件仅能定义一个应用模式,所以,如果需要对相同的应用??樯柚貌煌挠τ媚J椒梦?,就可以通过增加入口文件的方式来解决。


七.项目编译

    1.应用编译缓存

            编译缓存的基础原理是第一次运行的时候把核心需要加载的文件去掉空白和注释后合并到一个文件中,第二次运行的时候就直接载入编译缓存而无需载入众多的核心文件。当第二次执行的时候就会根据当前的应用模式直接载入编译过的缓存文件,从而省去很多IO开销,加快执行速度。

    2.运行Lite文件


            运行Lite文件的作用是替换框架的入口文件或者替换应用入口文件,提高运行效率。因为默认生成的文件名为lite.php,并且是运行时动态生成,因此称之为运行Lite文件。

*Lite文件的特点包括:

运行时动态生成;

常量定义为针对当前环境;

支持定义需要编译的文件列表;

支持生成Lite文件的名称;


相关阅读:

  • 学习贯彻十九大精神不忘初心 牢记使命 奔向未来 2018-11-29
  • 读出你的爱!市儿童公园父亲节亲子朗诵会等你来 2018-11-13
  • 默滕斯神仙球卢卡库2球 比利时3 2018-11-13
  • 世界杯专版 竞猜型彩票 赔率是公认的竞猜利器 2018-11-10
  • 候选案例:亿滋希望厨房 2018-11-10
  • 世界杯五大未解之谜,第五个你最关心,但一样没答案 2018-11-08
  • 端午假期陕西接待游客1913.2万人次 旅游收入86.15亿元 2018-11-02
  • 努力把各级党组织锻造得更加坚强有力——四论认真学习贯彻省委十二届四次全会精神 2018-11-02
  • 端午节,广州荔枝湾“扒龙船” 2018-11-02
  • 回复@“老笑头”,本人觉得你越来越幼稚可笑了。连“再什么主义,你没生产资料咋劳动?”这样的话都说出来了。你长大后没有经历过全中国的公有制时代,不清楚是可能... 2018-10-29
  • 国务院安委办约谈三市政府负责人 2018-10-23
  • 湖南着力推动习近平新时代中国特色社会主义思想深入人心 2018-10-22
  • 冠军教头离任!四川队官宣不再与杨学增指导续约 2018-09-25
  • 【理上网来·辉煌十九大】十九大报告指明实现干部清正、政府清廉、政治清明改革途径 2018-09-16
  • 一语惊坛(5月10日):半岛和平,是中朝两国的共同愿望。 2018-09-14
  • 277| 567| 439| 816| 166| 67| 948| 430| 417| 477| 462| 882| 592| 59| 898|