不但要记住核心的东西, 还要记住 相关的 东西: 如php cli的版本是 5.6.14 bulit: sep 30, 2015

tp中, 通常说的系统就是框架; 项目就是 "应用程序",就是"网站"

模板, 用Tpl表示, 为什么不用Tmp, 因为temp常常简写为tmp, 可能被误解为 "临时目录", 而tmpl则不会产生误解??

控制器为什么用m表示, 而不用c: controller表示?

第一, 好像c表示的是conifg, 配置, 而且, C函数也是用来访问配置情况的.

第二, 用m来 表示控制器, 其实控制器就是一个"模块", 一个module. 只是这个模块放在url请求路径中, 跟Model当然就不一样. 那你也不能说, m就是Model阿,它也可以表示module阿!

为什么叫控制器: 完全可以比对"遥控板的控制器的 概念": 理解控制器, 如同一个遥控板, 就是一个控制器, 一个具有多种操作功能的模块, 如遥控器, 可以开机, 关机, 选台, 调音量, 亮度等等, 它就是多种操纵方法的集合.

同样的, tp中的一个控制器, 表示的是 一组相互关联, 相互之间在逻辑上有关系的 多个 操作(一个操作就是一个成员函数) 的集合, 一个控制器就是一个模块, 就是一个*.class.php 文件, 一个类, 它包含多个 成员函数, 这些成员函数=方法, 就是表示多个操作. 控制器是从功能上来说的, 模块是从结构上来说的, 两者是统一的.

总之, 多个方法函数的集合体就是一个控制器, 就是一个模块. 这些方法操作的结果 , 就是 对应的视图(即网页, 页面). 如同遥控板控制器, 选台操作, 的结果就是 更换频道, 调节音量的结果就是 声音的增大或减小. 有了这样的理解, 今后组织网站逻辑功能的时候, 就可以更清楚的根据功能/操作的集合 ,写控制器, 模块了.


Aop: aspect oriented program, 面向方面的编程, 方面是指切面, 是多个不同的对象都 有公共的行为时, 如果对每个对象都封装相同的行为, 会造成代码的急剧重复增长, 如果新增/扩展对象也有这样的行为时, 也会出现同样的问题, 不便于扩展. 所以就把这样的公共行为提起出来,相当于把每个对象横切开来, 形成一个切面, 然后这个切面可以对每个对象完成相同的操作, 只要你传入相应的对象就号了.

在tp中, Aop是通过设计模式"代理"来实现的...


tp笔记

thinkphp中的常量:

  1. 为什么要使用常量?

    其实这些所谓的常量也不是真的不变, 只是一些“伪常量”, 代表一些内容/配置/路径, 你完全可以写死, 只是为了代码的灵活性和 移植性的目的

  2. 为什么要这么多常量?

    因为在不同的 模块、 组件、 功能中, 需要不同的处理, 所以需要用不同的常量来表示/代表/处理。

  3. 应该按分类来记忆这些变量

    包括类别:
  • 预定义常量, 不会随环境的变化而变化, 一旦下载的框架定了, 就是不变的, 相当于真的 常量
  • 路径常量, 包括系统(框架的路径常量)和项目(网站程序)的目录路径常量, 用于系统默认的目录规范,如果不希望定制目录, 这些路径常量一般不需要更改。
  • 系统常量,是指随着开发环境的改变、设置的改变而改变的。如: IS_POST,ROOT, APP_NAME, THINK_PATH之类的等。
  • 注意, tp中的 惯例配置中, 也有很多(其实也是分类的) 大写的下划线连接的"变量", 注意那个不是常量, 那个是配置 key.

    为什么要设置语言lang/zh-cn.php变量?

    主要是为了在 程序中 输出 提示信息, 而且这些提示信息, 用有意义的、 “见名知义”的变量来表示,而不是用“随意的字符串信息”来表示, 便于 管理(一次修改提示信息,处处生效); 便于在程序中多次使用,不用每次都输入;使程序更规范, 而不是更随意, 符合软件工程!

ThinkPHP框架下:

  • common/functions是由tp框架提供的函数库, 如同c语言提供的函数库一样, 是一些基本操作,底层最基本的函数, 如同php提供的函数库一样, 是可以直接使用的, 如php语言提供的函数substr,strstr,strpos等函数可以直接使用一样。 主要是为了和后面的 类的对象中的 成员函数相区别。

  • 框架提供的库Library包括几个:一是框架提供的核心类库Think, 然后是其他Org和Vendor和Behavior库


实际上 tphp3.2.3 可以叫thinkphp4.x, 相对于3.1.x 有很大的不同, 包括php_version>=5.3, 包括namespace, 等等.

thinkphp3.2.3 , 帮你 创建了 index.php文件, 和 应用目录application

在linux下, 要注意 文件和目录的模式, 读写权限..

只对于目录, 当添加其他用户的写权限时 , 将会用 黄色 highlight显示,提醒, 表示警告!(文件不会高亮显示警告)

在整个解压目录中, 就包括几样东西: index.php, Application/, ThinkPHP/ , Public/


ThinkPHP中疑难笔记的更多相关文章

  1. 关于thinkphp框架中模型笔记

    模型这一块,感觉学习的不是很清楚,单独水一贴thinkphp中模型的学习笔记. 0x01 模型类简介 数据库中每一张表对应一个模型,类名就是表名,类里面的成员变量就是列名, 把一张表对应为一个类,其中 ...

  2. thinkphp一句话疑难解决笔记 2

    php中的_ _call()方法? 它是php5后为对象 类 新增的一个自动方法. 它会监视类的其他方法的调用, 当调用类的不存在的方法时, 会自动调用类的__call方法. tp的 "命名 ...

  3. thinkphp一句话疑难解决笔记

    URL_PATHINFO_DEPR, depr表示 网页路径"分隔符",用"-", 有利于seo,注意是从 sername/index.php(开始的)/hom ...

  4. 关于ThinkPhp中getField方法存在的问题

    在ThinkPhp中我们可以通过以下方式获取数据库数据 query:直接执行SQL查询操作 find:查询单选数据集 getField查询字段值 select:查询数据集 其他......   但今天 ...

  5. [转]ThinkPHP中实例化对象M()和D()的区别,select和find的区别

    1.ThinkPHP中实例化对象M()和D()的区别 在实例化的过程中,经常使用D方法和M方法,这两个方法的区别在于M方法实例化模型无需用户为每个数据表定义模型类,如果D方法没有找到定义的模型类,则会 ...

  6. thinkphp中的setInc、setDec方法

    thinkphp中setInc.setDec方法 可用于统计字段(通常是数字类型的字段)的更新,例如积分,等级,登陆次数等 必须配合连贯操作where一起使用 $User = M("User ...

  7. iOS:项目中疑难Crash问题集锦

    项目中疑难Crash问题集锦 iOS App运行中遇到Crash的情况相信大家都遇到过,开发和者测试中遇到了可能很方便的办法就是直接拿着设备连接一下,然后使用Xcode自带的工具就可以解析出Crash ...

  8. ThinkPHP中关于JS文件如何添加类似__PUBLIC__图片路径

    在对html样式进行优化的时候,经常会用到Js/jquery进行一些跳转切换的样式,而我们常做的就是在Js/jquery代码中嵌url图片链接代码,以实现动态交互的页面效果. 如下图所示:

  9. ThinkPHP中initialize和construct的不同

    ThinkPHP中initialize()和construct()这两个函数都可以理解为构造函数,前面一个是tp框架独有的,后面的是php构造函数,那么这两个有什么不同呢? 在网上搜索,很多答案是两者 ...

随机推荐

  1. Linux 使用iostat分析IO性能

    原文:http://www.cnblogs.com/bangerlee/articles/2547161.html 对于I/O-bond类型的进程,我们经常用iostat工具查看进程IO请求下发的数量 ...

  2. linux命令之tail

    tail用于输出文件末尾部分.一个比较有用的功能是tail + grep实现类似于安卓开发时调试使用的logcat,具体操作是: 一般我是用SecureCRT连接linux,然后使用SecureCRT ...

  3. 好压(HaoZip)的命令行模式用法介绍

    好压压缩软件,又叫“2345好压”,是一款国产的优秀压缩软件,目前是免费的,据官网介绍,该软件永久免费.官网地址:http://haozip.2345.com/ 本文主要对该软件的命令行模式用法进行介 ...

  4. MMORPG大型游戏设计与开发(服务器 游戏场景 聊天管道和寻路器)

    又快到双十一,又是不少同仁们出血的日子,首先希望大家玩的开心.我曾经想要仔细的剖析场景的的每个组件,就像这里的聊天管道与寻路器,但是仔细阅读别人代码的时候才发现元件虽小但是实现并不简单,因为有些东西还 ...

  5. java设计模式之策略模式

    策略模式 定义了算法家族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户(大话设计模式). 策略模式UML图   策略模式代码 古代的各种计谋都是一种策略,这次我们 ...

  6. COGS182 [USACO Jan07] 均衡队形[RMQ]

    182. [USACO Jan07] 均衡队形 ★★   输入文件:lineup.in   输出文件:lineup.out   简单对比时间限制:4 s   内存限制:128 MB 题目描述 农夫约翰 ...

  7. ThreadLocal

    package cn.happy.util; import org.hibernate.Session;import org.hibernate.SessionFactory;import org.h ...

  8. 第47课 Qt中的调色板

    1. QPalette类 (1)QPalette类提供了绘制QWidget组件的不同状态所使用的颜色. (2)QPalette对象包含了3个状态的颜色描述 ①激活颜色组(Active):组件获得焦点使 ...

  9. codevs 2495 水叮当的舞步

    题目链接:水叮当的舞步 我现在开始发题目链接了(主要还是因为懒得整理题面)-- 这道题一开始是看到MashiroSky在写,于是我也开始写这道题了(说白了就是狙击他)-- 这道题看到这么小的范围当然给 ...

  10. 9个让人印象深刻的网站 JS 视觉效果

    网页设计已经提升到一个整体新的水平,Flash 渐渐失去了地位,逐渐被 HTML/JavaScript/CSS 所超越,而且一样可以实现出 Flash 复杂的特效. 本文介绍 8 个让人印象深刻的网站 ...