黄永成-thinkphp讲解-个人博客讲解25集
整个网站的根目录用blog你要跟别人说起,自己好识别的文件夹名字.
下面的项目名称 就不再重复的写了, 直接用App就好了.
网站访问: ...../index.php(入口文件)/Admin(模块名称)/[[Index控制器名称]/index(方法名称)]
一般在后台中, 除了Index控制器显示首页(登陆进去后的页面管理和显示)外, 还有有一个LoginAction的控制器.
!! 一个控制器就是一个class.php文件, 里面有很多相关的方法
!! 导入外部的 模板: 只要在模块下,先创建Tpl目录, 然后将模板(包括css样式表, js脚本, index.html, login.html等等页面)全部放到 Tpl中就好了!
为了方便管理/清晰, 可以将除了 html页面的其他内容都放在Public文件夹中.
而html文件则要 按控制器的名称, 分别创建文件夹, 把对应控制器的模板html文件放在对应的文件夹中.
如: 控制器Login.class.php对应的html模板文件就放在 Login的文件夹下.
系统默认的PUBLIC 常量是指向: 网站根目录下的Public文件夹.
黄永成 习惯的是: 系统默认的PUBLIC用来存放 前台的Public模板文件夹内容(主要是指css,js)
后台的Public文件夹就放后台的模板的 css js等内容.
-------------------------- ==
在开发的时候, 要习惯于查看浏览器 给出的 页面的源代码, 因为, 通过浏览器 的源代码, 可以查看 / 排错!
可以查看: tp翻译/转换 后的 js, css的源地址和代码执行情况等等. 如: 通过查看源代码, 可以看到 从服务器端返回给浏览器的 "变量替换后的路径/内容"等等, 从而可以排错!
同时浏览器查看 源代码比很多 编辑器更好看.
有的页面布局, 完全用div.
其实有时候, 也不要完全抛弃 table! 在页面布局中, 要结合table和div!!! 有时要轻松得多!
因为在 td中, 你完全可以任意的使用 div! 一个td中可以包含 很多内容的 div1, div2....
-------------------------- ==
不能只是重视style css的应用, 也要重视/ 注意 html标签元素的 属性的应用, 有时 使用标签元素的 属性 比使用style来控制 更简单 更直接 有效!
注释:
不只是脚本文件中需要注释, 同样要习惯于: 在写html的时候, 也要适当的使用注释: 常用的格式是:
---------------------------==
定义全局或 模块下的__PUBLIC__, _ JS _等常量
在ThinkPHP中config文件中进行一下配置即可。
//重定义网站的一些URL地址/* 模板相关配置 */'TMPL_PARSE_STRING' => array('__PUBLIC__' => __ROOT__ . '/Public','__JS__' => __ROOT__ . '/Public/Js','__CSS__' => __ROOT__ . '/Public/Css','__IMAGE__' => __ROOT__ . '/Public/Image','__DATA__' => __ROOT__ . '/Data/'),在ThinkPHP3.2中其中__ROOT__ 默认找到项目的根路径,利用这种方式即可定义网站后台各级文件夹的路径,便于更好的查找相关文件在ThinkPHP的模板中使用已定义的路径,可以使用C方法C('TMPL_PARSE_STRING.PUBLIC') // 注意调用配置文件中的TMPL_PARSE_STRING的时候, 就不用下划线__PUBLIC__, 直接是PUBLIC了
在thinkphp的Conf中的convention.php中没有TMPL_PARSE_STRING, 要靠自己在模块的Conf中设置: 如: Modules/Admin/Conf/config.php 文件中设置... TMPL_PARSE_STRING是包含多个常量字符串设置的 数组!
设置中的 分组名, 最好用GROUP_NAME 表示. 这样在修改分组名称的时候, 就只是修改入口文件index.php, 而不用修改其他配置了, 如这里的 TMPL_PARSE_STRING.
在项目配置文件中, 设置分组时:
对APP的配置都是以APP_开头的;
只有DEFAULT_GROUP不是以APP开头的.
------------------------- ==
就像linux下, 只用vim编辑文档一样, windows下只用editplus编辑文档, 熟悉并记住这些键盘bind keys有意义的事!
记住, 从text editor跟侧边栏之间的转换: alt+F5, shift+F5是转到输出窗口. 然后再记住alt+F6是打开硬盘上的文件/文件夹列表
------------------------ ==
有两个xx+alt+up/down:
ctrl+alt+up/down: 复制当前行;
shift+alt+up/down : 上/下移动当前行
------------------------ ==
使用外部css表的方式: (外部链接的方式) 和img src的区别?
- 标签是link, 不是style
- 指定源地址是: href, 不是src
- 总之, 你理解为: css是外部" 链接", "链接" 那么就是: link, 如同超链接a一样, 地址是用 href属性来指明的.
即: link type="text/css" rel="stylesheet" href="xxx" />
使用外部链接样式表的好处是:
- 减少html文件的大小, 搜索引擎搜录得更快
- 可以使用多线程来下载html和css文件, 这样显示渲染速度更快
- 便于html和css人员的分别修改处理: 内容和样式的分离
------------------------- ==
注意在定义类class的时候, 继承 的单词是 extends, 不是extended!
独立分组好后, 可以把App下的一些不要的文件夹如tpl等可以删除.
??好像: editplus(epp)的配置文件, 只认一个, 即使你安装了多个版本的epp, 那么最后你使用的配置 , 总是最后一次安装时的, 这是通常为空白的默认的安装配置
在epp中, 匹配有两种: 一是匹配括号(,[ {, 一是匹配 标签
匹配括号的bind key is: Ctrl+], select bracket is: ctrl+shift+]
匹配标签的,html标签,如 body> , 则是: ctrl+[, 选择标签内容是: ctrl+shift+[
epp的匹配,不像 zend, 是自动显示/高亮括号, 它是要匹配操作后才显示的.
可以配置一次性删除: 所有的空白行: ctrl+shift+B(bind key)...
--------------------------- ==
查看页面的源代码:
在页面的地址前面加上: view-source: + http://.....
**而且可以刷新!
view-source:http://localhost/blog/index.php/Admin/Login/index
--------------------------==
写TMPL_PARSE_STRIGN时:
- 位置 : 是写在App/Modules/分组名称如Admin/ Conf/ config.php中, 不是写在Admin下...
- 解析__PUBLIC__的时候, 最好用全局常量, 不要写死, 因为如果后面要修改的话, 就不好修改: 不要写MODULE_NAME, 它会把所有的东西都看成是模块, 不管
是App, Modules, 还是Admin, 还是Action, 所以要写具体的: 应用程序的名称用APP_Name, 分组的名称用 Group_NAME...
.
---------------------- -------- ==
导入库:
查看thinkphp的官方文档
import是一个方法, 格式是:import('类库文件名', '起始路径', '类库后缀');
'类库文件名'中的点号表示的是路径"", 所以类库名本身不能带有点号- 可以基于框架导入, 这时候, 就不用写第二个和第三个参数, 即不写起始路径, 和类库后缀, 因为框架会自动判断/认为类库的起始路径, 也会自动认为类库的后缀为
class.php 基于框架的导入有三种:
导入基类库(基础类库): 是指导入 Thinkphp/Lib 目录下的类库: import('Think.Util.Array'): Note that: 是导入lib目录下的, 不是lib/core下的; and: 是
以Think开头的...
导入扩展类库: 是指导入Thinkphp/Extend/Library目录下的类库: import('ORG.Util.Image'): 导入的是: THinkphp/Extend/Library/ ORG/Util/Image.class.php 类库文件
导入项目应用程序库: import('MyApp.Action.UserAction')...
如果没有指定起始导入路径的话,类库包Think、ORG、Com之外的都会被认为是导入项目应用类库,例如:import("MyApp.Action.UserAction");import("MyApp.Model.InfoModel");表示导入MyApp项目的UserAction和InfoModel类库文件,由于通常,我们都是导入当前项目下面的类库,所以可以简写成:import("@.Action.UserAction");import("@.Model.InfoModel");
导入非标准类库文件
这时, import的第二个参数和第三个参数就不能省略了:
这里所说的非标准类库文件,主要是指位于特殊位置(不是上面三种位置)或者非.class.php后缀(如是.php后缀)的类库文件。
像导入基类库、扩展类库和项目类库都是基于框架规范的目录下面,如果我们需要导入项目的Common目录下面的MyClass.php文件,则可以采用:
import('Common.MyClass',APP_PATH,'.php');
或者
import('MyClass',APP_PATH.'Common','.php');- 导入第三方库:
可以用import方法, 但是用Vendor()方法更方便, 把自己写的第三方类库放在Thinkphp/Extend/Vendor下,就可以直接用 Vendor方法导入:
Vendor('Zend.....'); 支持别名导入:
除了命名空间的导入方式外,import方法还可以支持别名导入,要使用别名导入,首先要定义别名,
我们可以在项目配置目录下面增加alias.php 用以定义项目中需要用到的类库别名,例如:
return array(
'rbac' =>LIB_PATH.'Common/Rbac.class.php',
'page' =>LIB_PATH.'Common/Page.class.php',
);
--------------------------------- ==
生成验证码的时候, 提示, Image::buildImageVerify()方法无法call ImageCreate()方法?
要开启 php.ini中的 extension=php_gd2.dll
好像还不能用APP_PATh来代替配置文件中的__ROOT__.'/'.APP_NAME! 因为APP_PATh输出的是./App/, 结果替换后, 就成了当前目录下的... MODULE_NAME是指控制器的名字!
thinkphp中的方法函数import(), 就是由tp框架定义的 thinkphp/Common/目录中的 common.php文件中定义的!
我们甚至可以 在这个系统文件中 common.php中来echo 等等debug, 或显示某些变量!
黄永成-thinkphp讲解-个人博客讲解25集相关推荐
- 0. 国内,首套,成体系,技术博客写作专栏发布啦
橡皮擦,一个逗趣的互联网高级网虫,为你带来新职场故事,搬来程序员敲门砖. 作者嘚啵 der 这是一套技术博客写作专栏的概述篇 这篇文章从整体结构上告诉你,这个专栏要干啥 专栏的规划被群友念叨了半年,直 ...
- 《博客园精华集》Sharepoint+MOSS分册第2轮筛选结果文章列表
<博客园精华集>Sharepoint+MOSS分册第2轮筛选结果文章列表 由我筛选完成,MOSS部分一共68篇,Sharepoint部分一共213篇 Sharepoint相对来说学习和使用 ...
- [活动]《博客园精华集》设计模式分册第2轮筛选结果公示
说明 <博客园精华集>设计模式分册第2论筛选结果,总共有284篇,主要由TerryLee.idior.怪怪三人完成.在经过第三轮打分之后,还会有很多的文章出局.请大家发现以下文章中有转载或 ...
- 《博客园精华集---CLR/C#分册》
<博客园精华集---CLR/C#分册> 转:http://www.cnblogs.com/anytao/archive/2008/09/04/lovechina_bestclr_3rdfi ...
- 《博客园精华集---CLR/C#分册》第三轮筛选结果
<博客园精华集---CLR/C#分册>第三轮筛选结果 发布日期:2008.9.4 作者:Anytao 精华集CLR/C#分册,经过一段时间三轮筛选努力,终于有了一个初步结果.虽然这个过程历 ...
- [2009.08.09]博客园北京俱乐部活动暨《博客园精华集:Web标准之道》现场签售通知...
<博客园精华集:Web标准之道>发售啦!!! 无论你是博客园的老人,还是初来乍到,这些人你是否或曾耳闻呢:TerryLee.Anytao.Cat Chen.Anders Liu.鸟食轩.L ...
- mysql cluster双机_GitHub - sophys/mysqlha: 博客“Mysql-cluster数据库集群双机HA研究”测试代码...
mysqlha 本代码是基于博客Mysql-cluster数据库集群双机HA研究所写的.测试采用的是32位环境,linux环境为debian,如果是其他系列只需修改部分指令即可.mysql-clust ...
- 《博客园精华集--WEB分册》第三轮结果--心痛时刻一如既往
<博客园精华集--WEB分册>第三轮筛选结果发布,已经过转载排除和重新分类,入选文章合计 54 篇,其中HTML/CSS 7 篇,WEB标准 23 篇,各种优化 8 篇,JS 16篇.另H ...
- [转载]Object-C 声明属性为什么用下划线,代码规范和编程风格_s芃成_新浪博客...
原文地址:Object-C 声明属性为什么用下划线,代码规范和编程风格 作者:贞娃儿 在阅读和书写关于iPhone编程的代码的时候,发现有很多这样的情况: 看到很多源代码里面,使用前面带下划线变量,然 ...
- 最近远景论坛打不开修改hosts_s芃成_新浪博客
多日不逛远景论坛,今天突然想逛逛,竟发现访问不了,于是百度乎..暂时解决方案为 到"C:\Windows\System32\drivers\etc"目录下,修改hosts文件,加上 ...
最新文章
- 查询当前Oracle数据库的实例
- 三位数的茎叶图怎么看_贝德玛化妆品生产日期怎么看?贝德玛化妆品保质期怎么看?...
- c++new时赋初值_优质 quot;嵌入式C编程quot; 必备指南
- 高性能编程之IO复用之epoll
- kafka之生产者---总结自Kafka权威指南
- spdy_buffer
- profibus通讯快速入门_西门子S7-300/400PLC入门:硬件配置
- html4角星,运用ai绘画出5角星4角星三角形形状的设置步骤
- SSL2893 谷仓的安保
- python中关于np.array初始化不同维度矩阵的有趣现象
- telephony-apps
- 高精度定位理论及应用
- Interview Summary
- Elastic:Beyond Search!
- shell删除文件的最后一个字符
- 抖音计算机音乐的歌名,抖音卡点音乐叫什么名字 抖音卡点bgm介绍
- springboot controller里出现异常会导致服务器宕机_锐速云:服务器租用10条最容易出错崩溃的记录...
- c#语言窗体运行暂停指令,C#线程启动、暂停、恢复、停止怎么实现
- win系统服务器字体怎么访问,win10如何修改默认字体为楷体_网站服务器运行维护,win10,字体...
- Value of type “string“ is not suitable for value type “Numeric (float)“. Value “Traceback (most rece