牛骨文教育服务平台(让学习变的简单)
博文笔记

thinkphp3.2.3 相关

创建时间:2015-12-16 投稿人: 浏览次数:470

一、命名空间

实现原理:

autoload自动加载所有的“命名空间类名”(或类名),根据其是否符合命名空间格式(是否存在“”)分情况进行处理

1、  若符合命名空间格式,则通过字符串处理取出该命名空间的根命名空间名称,判断其是否为配置文件中规定的根命名空间目录数组中元素,若是,则根据配置文件中配置该跟命名空间目录的路径信息与autoload取出的“命名空间类名”信息组合出该类文件的路径,引入文件

2、  若不符合命名空间格式,即只取得“类名”,同时配置文件中会有一组相关配置,数组APP_AUTOLOAD_LAYER=> array(“Controller”,”Model”),则将该类名的标志性名称如IndexController中的Controller,DbModel中的Model取出,判断是否属于APP_AUTOLOAD_LAYER,若属于则根据APP_AUTOLOAD_LAYER中相应的元素的路径与已经autoload取得的类名组合出该类文件的路径,引入文件

二、Hook钩子

一个触发机制,实现了在不改变源代码的前提下提升系统的灵活性,Hook类中全是静态方法,其中有唯一静态属性$tags,他是一个数组,键为绑定的事件,值为绑定的行为。

当系统触发了某个事件,比如app_start事件,TP会找到Hook::listen方法,该方法会查找$tags中有没有绑定app_start事件的方法,然后用foreach遍历$tags属性,并执行Hook:exec方法,执行该插件

三、数据库存储

内置了抽象数据库访问层,支持Mysql、SqlServer、PgSQL、Sqlite、Oracle、Ibase、Mongo等数据库,并且采用PDO方式;

支持分布式数据库

四、Runtime 项目运行时目录

项目运行时文件夹自动生成,应用日志目录、应用缓存目录、应用数据目录、应用模板缓存目录都在该文件夹中

五、Catch缓存实现

支持文件方式、APC、Db、Memcache、Shmop、Sqlite、Redis、Eaccelerator和Xcache

六、域名部署

完整域名部署

"APP_SUB_DOMAIN_DEPLOY"  =>    1, // 开启子域名配置

"APP_SUB_DOMAIN_RULES"   =>    array(  

"admin.domain1.com"  =>"Admin", 

// admin.domain1.com域名指向Admin模块

"test.domain2.com"  => "Test", 

// test.domain2.com域名指向Test模块

    ),

 

 

子域名部署

"APP_SUB_DOMAIN_DEPLOY"   =>   1, // 开启子域名配置

"APP_SUB_DOMAIN_RULES"    =>   array(  

   "admin"        => "Admin",  // admin子域名指向Admin模块

   "test"         => "Test",  // test子域名指向Test模块

    ),

 

 

IP访问部署

"APP_SUB_DOMAIN_DEPLOY"   =>   1, // 开启子域名配置

"APP_SUB_DOMAIN_RULES"    =>   array(  

   "22.56.78.9"  => "Admin",  // 22.56.78.9指向Admin模块

    ),

 

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。