ThinkPHP真正疑难问题笔记】的更多相关文章

错误调试, E($msg)? 这个是tp内置的E 方法, E 函数. 它是tp抛异常 的另外一种方式. 默认的异常处理方式是, 在 框架下的 ThinkPHP/Tpl/think_exception.tpl, 其中的提示消息是: $e['message'], 而 E($msg)的使用场合是: 抛自定义异常消息: 如果你不想显示系统默认的 $e['message'], 那么你可以用 E 方法,显示自定义的异常消息. 而实际上, E方法,还是走的异常 途径, 它是: E($msg, $code=0)…
php中的_ _call()方法? 它是php5后为对象 类 新增的一个自动方法. 它会监视类的其他方法的调用, 当调用类的不存在的方法时, 会自动调用类的__call方法. tp的 "命名范围调用"就是使用的 __call机制.如$User->scope_name()->select(); 它带两个参数,第一个是 调用的不存在方法的名称$funcName, 第二个参数是 由不存在方法的参数 组成的一个数组$args. **特别注意的是, __call要定义为 public…
URL_PATHINFO_DEPR, depr表示 网页路径"分隔符",用"-", 有利于seo,注意是从 sername/index.php(开始的)/home-user-login-var-value开始的,pathinfo也支持普通的参数传值(仅仅支持参数...). 在thinkphp中,有两个地方使用depr,另一个就是tpl的文件目录组织分隔符: 'TMPL_FILE_DEPR'=>'-' URL_PATHINFO: 意思是路径信息,意思是 网页的u…
如何选择线程安全版本还是非线程安全版本: http://www.cnblogs.com/Alight/p/3389113.html(看webserver处理请求时, 使用的是多线程的方式还是 多进程的方式), 当php使用fastcgi的方式运行时, 采用的是单线程的方式, 因此应该选择nts-php, 如果采用isapi的方式, 就使用ts-php, 很多php的模块都是 线程不安全的.. 通常apache服务器 使用的是isapi是 ts模式. 写php的类, 实际上, 也就是把 php看作…
不但要记住核心的东西, 还要记住 相关的 东西: 如php cli的版本是 5.6.14 bulit: sep 30, 2015 tp中, 通常说的系统就是框架; 项目就是 "应用程序",就是"网站" 模板, 用Tpl表示, 为什么不用Tmp, 因为temp常常简写为tmp, 可能被误解为 "临时目录", 而tmpl则不会产生误解?? 控制器为什么用m表示, 而不用c: controller表示? 第一, 好像c表示的是conifg, 配置, 而…
模型这一块,感觉学习的不是很清楚,单独水一贴thinkphp中模型的学习笔记. 0x01 模型类简介 数据库中每一张表对应一个模型,类名就是表名,类里面的成员变量就是列名, 把一张表对应为一个类,其中一条数据对应一个对象 如果我们对该表的模型没有特殊操作的话可以不用建立该模型,但C层和V层必须有 模型类简单代码: <?php namespace Home\Model; use Think\Model; class UserModel extends Model { public $tablePr…
ucenter手册:http://www.phpddt.com/manual/ucenter/html/index.htm 参考:http://www.thinkphp.cn/topic/1557.html wblog1根目录| – index.php//前台入口文件| – admin.php| – W3note//前台项目| | – Lib| | | – ORG| | | | –UcService.class.php //UCenter的通讯处理类文件| | – Conf//W3note项目的…
一.安装TP5.1 1.使用git安装 <1>下载Tp git clone https://github.com/top-think/think tp5 <2>安装核心库 git clone https://github.com/top-think/framework thinkphp 2.使用compose安装(需下载compose) compose下载链接 https://getcomposer.org/Composer-Setup.exe 第一次安装使用,切换到web目录下:…
学习sql的存储过程,笔记总结如下: MySQL默认将分号,即";"作为语句的分隔符.如果是这样的话,则一个存储过程将很难正常创建,因为它的BEGIN和END之间可以是任意数量的SQL语句,而每条SQL语句都以分号结束.所以,在创建存储过程时,必须重新定义分隔符.在创建完存储过程后,必须重新设置回原来的分隔符";". 1. 创建普通存储过程的基本格式 -- 创建存储过程 DELIMITER $ -- 声明存储过程的结束符 create procedure pro_t…
在POI中,我们可以通过Workbook, Sheet, Row, Cell 对象分别对应Excel文件.工作表.行.单元格. 在POI的使用中,我遇到了几个非常诡异.捉摸不透的问题,现在记录下来. 1.关于Sheet.Row.Cell的下标 一般情况下,我们读取一个Excel表格是这样的: Workbook workbook = WorkbookFactory.create(file); Sheet sheet = workbook.getSheetAt(0); Row row = sheet…
关于php数组的排序函数的总结: 有很多种排序方式和排序规则: 正常排序和反向排序, 使用 -r来表示 排序时是否考虑索引/下标, 如果考虑则加上-a, a=associate. sort是按值来排序的, 它不管索引的:如果要考虑顺序或索引, 则加上相应的关键字付. 凡是带k的函数, 一定会保持关联性, 本来就是根据key来排序的, 如果不带k都是根据值来排序的, 不关心key的, 原来有key的, 都会被删除.除非显式的指明用a... usort: u: user, 用户自定义, 即排序方法,…
thinkphp开发技巧经验分享 www.111cn.net 编辑:flyfox 来源:转载 这里我给大家总结一个朋友学习thinkphp时的一些笔记了,从变量到内置模板引擎及系统变量等等的笔记了,同时还有一些开发中碰到的问题的解决方案下面我们一起来看看吧.     一,常用的系统变量 (1)系统变量:在模板中输出系统变量:包括server.env.session.post.get.request.cookie {$Think.server.script_name} // 输出$_SERVER变…
原文:thinkphp学习笔记10-看不懂的路由规则 路由这部分貌似在实际工作中没有怎么设计过,只是在用默认的设置,在手册里面看到部分,艰涩难懂. 1.路由定义 要使用路由功能需要支持PATH_INFO,PATH_INFO是什么呢?手册中提到“要使用路由功能,前提是你的URL支持PATH_INFO(或者兼容URL模式也可以,采用普通URL模式的情况下不支持路由功能),” , url支持path_info,不是apache要支持path_info么,度娘讲的还算清楚一点,见下文: pathinfo…
原文:thinkphp学习笔记9-自动加载 1.命名空间自动加载 在3.2版本中不需要手动加载类库文件,可以很方便的完成自动加载. 系统可以根据类的命名空间自动定位到类库文件,例如定义了一个类Org\Util\Auth类: namespace Org\Util; class Auth { } 保存到ThinkPHP/Library/Org/Util/Auth.class.php 这样我们就可以直接实例化了, new \Org\Util\Auth(); 实例化之后系统会自动加载 ThinkPHP/…
原文:thinkphp学习笔记8-命名空间 新版本(3.2)中采用命名空间的方式定义和加载类库文件,解决多个模块之间的冲突问题,并实现了更加高效的自动加载机制. 需要给类库定义所在的命名空间,命名空间的路径和类库文件的目录一致,就可以实现类的自动加载,例如Org\Util\File类的定义为 namespace Org\Util; class File { } 其所在的路径是ThinkPHP/Library/Org/Util/File.class.php,我们实例化该类写法如下: $class…
原文:thinkphp学习笔记7-多层MVC ThinkPHP支持多层设计. 1.模型层Model 使用多层目录结构和命名规范来设计多层的model,例如在项目设计中如果需要区分数据层,逻辑层,服务层等不同的模型层可以在模块目录下创建Model,Logic,Service目录,把对用户表的所有模型操作分成3层. 1.Model/UserModel用于定义数据相关的自动验证,自动完成和数据存取接口 2.Logic/UserLogical用于定义用户相关的业务逻辑 3.Service/UserSer…
原文:thinkphp学习笔记6-url模式 入口文件是应用的唯一入口,因为可以多入口,每个应用可以对应一个入口文件,系统会从rul参数中解析当前请求的模块,控制器,操作.ThinkPHP是区分大小写的,考虑到linux是区分大小写的,所以在ThinkPHP中模块,控制器,模型等都是区分大小写的,并且使用驼峰命名规则. 如果我们直接访问入口文件index.php,url中没有给出模块,控制器,操作,系统会默认访问Home模块下的Index控制器下的index操作,因此下面的两种访问方法得到的结果…
原文:thinkphp学习笔记5-模块化设计 1.模块结构 完整的ThinkPHP用用围绕模块/控制器/操作设计,并支持多个入口文件盒多级控制.ThinkPHP默认PATHINFO模式,如下: http://serverName/index.php(或者其他应用入口文件)/模块/控制器/操作/[参数名/参数值...] 应用:由同一个入口文件访问的项目称为一个应用,在完整版的代码中就是Application 模块:一个应用下面可以包含多个模块,每个模块对应独立的目录,在完整版的代码中有Admin,…
原文:thinkphp学习笔记4-眼花缭乱的配置 1.配置类别 ThinkPHP提供了灵活的全局配置功能,ThinkPHP会依次加载管理配置>项目配置>调试配置>分组配置>扩展配置>动态配置,所以后面的配置权限要大于前面的,因为后面的配置会覆盖前面同名配置,同事会生辰配置缓存文件无需重复解析,减小开销. 惯例配置:在惯例配置内对大多数常用参数进行默认配置,因为惯例配置最先加载,优先级别最低,如果不需要做特殊配置的话,完全可以保持默认值,惯例配置位于ThinkPHP/Conf/…
原文:thinkphp学习笔记3-项目编译和调试模式 1.项目编译 在章节2.4项目编译中作者讲到使用thinkphp的项目在第一次运行的时候会吧核心需要加载的文件去掉空白和注释合并到一个文件中编译并缓存,第二次运行时直接载入编译缓存,这样省去一些IO开销,加快执行速度.并且在3.0以上的版本中海做了一些优化: 1.合并和兴编译缓存和项目编译缓存,不再生成两个缓存文件 2.直接对本地环境生成设置和常量定义减少环境判断 3.编译缓存可以直接替换框架入口甚至项目入口,甚至脱离框架独立运行 4.通过参…
原文:thinkphp学习笔记2-入口文件 在thinkphp中有两个入口文件,一个是项目的入口文件,是index.php在主目录里面,还有一个是thinkphp框架的的入口文件,放在框架目录下面如:D:\thinkphp\ThinkPHP,名字是ThinkPHP.php. thinkphp采用的是单一入口模式,所有的程序都是从项目入口文件开始执行的,项目入口文件内容包括: 定义框架路径,项目路径和项目名称(可选) 定义调试模式和运行模式相关变量(可选) 载入框架入口文件(必须) 在手册里面讲到…
原文:thinkphp学习笔记1-目录结构和命名规则 最近开始学习thinkphp,在下不才,很多的问题看不明白所以想拿出来,恕我大胆发在首页上,希望看到的人能为我答疑解惑,这样大家有个互动,学起来快点,别无他意,所谓活到老,学到老,希望各位不要见笑啊. 我的做法很简单,先从手册开始,手册是开发thinkphp作者辛勤劳动的成果,但是有些地方是在是不懂,如果有幸各位也遇到类似的问题希望能回复.thinkphp手册地址:http://doc.thinkphp.cn/manual.html 1.框架…
学习ThinkPHP笔记 TP的模块化设计 名称 描述 应用 基于同一个入口文件访问的项目我们称之为一个应用. 模块 一个应用下面可以包含多个模块,每个模块在应用目录下面都是一个独立的子目录. 控制器 每个模块可以包含多个控制器,一个控制器通常体现为一个控制器类. 操作 每个控制器类可以包含多个操作方法,也可能是绑定的某个操作类,每个操作是URL访问的最小单元 ThinkPHP的应用目录   应用整体架构.JPG   模块内部架构.JPG URL模式 URL模式 URL_MODEL设置 普通模式…
原文:赵桐正thinkphp教程笔记 ,有修改 常用配置 常用配置config.php: <?php return array( //'配置项'=>'配置值' 'URL_PATHINFO_DEPR' => '/', //修改URL分隔符 'TMPL_L_DELIM' => '<{',//左定界符 'TMPL_R_DELIM' => '}>',//右定界符 //数据库相关 'DB_PREFIX' => 'mb_', 'DB_DSN' => 'mysql:…
关于文件上传所涉及到的php.ini 中的一些配置: (以当前要设置的关键字开头...) 是每个上传文件所允许的大小, 默认的 upload_max_filesize = 2M, 如果超过了2M,_POST $_FILES就是空.可以设置大些. 是整个form表单允许的post数据的总的大小, 默认的是8M, post_max_size = 8M, 可以设置大些. 是上传脚本允许执行的最大时间,通常,一个5M左右的文件, 在通常一般的wan网络中,需要 约半分钟的时间. 如果上传文件较大较多,…
# Thinkphp ## 什么是框架?(框架开发)> 框架就是通过提供一个开发Web程序的基本框架(比如提供了分页类.数据库操作类.文件操作类等),使用框架可以减少开发者代码的编写.> 简单理解就是别人写好了很多东西,我们直接拿过来用.最后拼凑成一个项目(可以是商城.论坛等) . ## 什么是二次开发* 所谓二次开发就是在现有的软件上进行定制修改,功能的拓展,然后达到自己想要的功能,一般来说都不会改变原有项目的主要内容. ### 商城二次开发框架* ecshop* shopnc* ecmal…
前后台配置: 在根目录文件夹中创建一个Conf文件夹 Conf文件夹下建立一个config.php文件,里面存放公共配置信息,方便前后台调用. 简单定义404页面 伪静态去除.html Config中 URL_HTML_SUFFIX  => ‘’ 分配模版 1:$this ->assign(‘XXX’,$XXX); 2:$this->a = 111; 3:$this->assign(‘xxx’,$xxx)->display(); 时间戳处理 {$v.time|date='y-…
一.入门与安装 1.进入C:\Windows\System32\drivers\etc的hosts文件中增加127.0.0.1 www.tp5.com 即访问这个域名就相当于访问127.0.0.1 2.修改apache配置文件 增加 <VirtualHost ~E42E:80> DocumentRoot "/home/www/tp5/public"<br /> ServerName tp5.com<br /> </VirtualHost>…
1.load('@.function')  临时性加载 指的是Common文件下的 function 如 function select(){} , locad中的function实际指的就是 common目录下的select.php文件 用法: class IndexAction extends Action { public function index(){ load('@.select'); print_r(say()); } } common 目录下的select.php文件 <?ph…
13集: ThinkPHP3.1.3使用视频教程--后台登录验证与自动运行方法_标清.flv 14集: ThinkPHP3.1.3使用视频教程--自定义SESSION处理DB驱动与添加Redis处理驱动_高清.mp4 15集: ThinkPHP3.1.3使用视频教程--通过后台管理许愿墙贴子与分页类的使用_高清.mp4 在editplus中 编译IndexAction.class.php文件时, 会提示" cannot find class 'Action'"? 这是因为, 你直接编译…