如何选择线程安全版本还是非线程安全版本: http://www.cnblogs.com/Alight/p/3389113.html(看webserver处理请求时, 使用的是多线程的方式还是 多进程的方式), 当php使用fastcgi的方式运行时, 采用的是单线程的方式, 因此应该选择nts-php, 如果采用isapi的方式, 就使用ts-php, 很多php的模块都是 线程不安全的.. 通常apache服务器 使用的是isapi是 ts模式.

写php的类, 实际上, 也就是把 php看作是 oop的语言, 而那正是我所喜欢和熟悉的, 如以前使用c++, 虽然以前php写的可能是用oop的思想,但是并没有支持oop的语言features, 不过php的oop语法跟java更接近

一个很重要的常识: 在编程语言中, 只有函数中的 字符串 类型, 才用 引号, 而语言中的 所有的 "关键字" 等 都不 使用 引号.

事实上, 感觉 tp 各个版本的 结构虽然 "内核" 没变,但是 各版本之间的目录结构, 术语的叫法其实 是很 混乱的, 如:项目, 模块, 分组, 控制器等术语都是很迷惑的,所以, 自己来用的话, 还是要牢固的 掌握一个版本, 固定一个版本(选择v3.2.3) 为好, 要想每个版本都去整的话, 是会迷惑的. 

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){

如果没有定义默认的页面, localhost将显示: /usr/share/httpd/noindex/index.html页面

在httpd.conf文件中, 如果要表示, 只有开启了某个模块后, 才能配置生效的设置: 使用 <IfModule alias_module> Alias /SPhoto /root/SPhoto </IfModule> 在httpd.conf的220行...

什么叫Alias: 本来httpd服务器访问文件是有默认的地址的, 那就是 DocumentRoot "/var/www/html", 但是假设你把web内容没有放在 DocumentRoot目录下或其子目录下, 但是你要httpd server又能够去访问到, 比如通过 地址 http://localhost/SPhoto, 如果没有作Alias, 那么这个SPhoto目录应该表示是 /var/www/html/目录下的一个子目录, 而实际上, 它是在/root/SPhoto, 所以要 实现这个 别名: /SPhoto -> /root/SPhoto, 就要对httpd.conf进行设置, 告诉apache这个别名, 让它... (Alias: Maps webpaths into filesystem paths and is used to access content that does not live under the DocumentRoot. [content作为内容讲时是不可数名词,而作为目录讲时当然是可数名词了,此时需要在后边加S] )

在http.conf配置中的 目录结尾都不要跟 / ,because:

If you include a trailing / on /webpath, then the server will require it (/) to be present in URL.

包括http.conf文件中所有的配置命令格式: 命令指令(首字母大写的驼峰表示法单词 + 空格 + 命令值(字符串用双引号)

就不是很清楚, ls -C 是按列显示, 而按行显示就是 -x...

目录 节(section) 选项属性格式:

<Directory "/root/SPhoto">  注意, 下面所有的设置, 都是 针对 这个目录而设置的, 是对目录! 不是 针对哪一个文件的!!!
属性名称 属性值
Options (+-)Indexes // Options是复数,针对目录, 是否在没有index...文件的时候, 显示索引即显示目录结构, index这里是动词...
(+-)FollowSymLinks // 类似于IfModule alias_module中的Redirect: 即允许 假设在访问/webroot/ftp的时候, 这个ftp实际上是一个链接, 比如链接到/var/www/uploads/去, 即在访问http://www.example.com/ftp的时候, 实际显示的并 不是/webroot/ftp目录的内容, 而是...uploads的内容. **建议设置这个选项, 服务器特性, 避免apache去 执行 系统调用 stat, 去检查目录是不是一个链接, 这样有助于提供网站性能...** 参考:https://www.yuzhenhai.com/view/201212/7609.html
(+-)MultiViews: 表示, 当访问某个子目录 如: foo 时, 如果没有这个子目录, 但是有 几个类似的文件, 如: foo.html, foo.png, ...这时候, apache会根据具体的情况, 决定使用 foo.html 或 foo.png. multiviews, 就是表示多视图, 不同的视图, 根据情况采用不同的 文件显示... AllowOverride None/ All, 表示是否允许重载, 意思是这里httpd.conf文件中设置的Options选项等特性, 是否可以在 目录下的 .htaccess文件中, 重新设置, 用.htaccess中 的设置来覆盖 httpd.conf中的设置. Order allow,deny
Allow from all
deny 1.2.3.4
// 这里是定义的客户端的访问权限, 相当于acl, 但跟acl的区别是: 实际是否生效,以及检测的顺序是以 order中, 最后规定的类型来决定的..., 所以, 如果像下面这样规定, 就达不到目的:
Order deny, allow
deny 1.2.3.4
Allow from all
// 因为order规定检测的最后顺序是 allow, 所以会检测最后的allow from all, 并以此为准!! </Directory>

在linux系统中, 在apache站点中, 路径末尾加不加 /, 其实是有区别的, 不可以随意, 需要小心处理, 比如对于目录链接就是如此...

管理目录栈: pushd(保存历史目录), popd(删除历史目录), dirs(显示堆栈目录). pushd +N 中的+表示从左到右, -表示从右到左, N总是从0开始, 即使是0, 也要用+0, 或-0 表示, 因为有方向性: 最左边的第一个和最右边的第一个很明显是不同的.

  • pushd +N 表示跳转栈中第N个路径,且将此路径压入到栈顶(从左往右,从0开始)
  • pushd -N 表示跳转到第N个路径,且将次路基压入到栈顶 (从右往左,从0开始)
  • pushd +1 等于 pushd

    如何在linux下将cd目录压入目录堆栈 参考https://www.bing.com/search?q=options+%2Bfollowsymlinks&qs=n&form=QBRE&pq=options+%2Bfollowsymlinks&sc=0-23&sp=-1&sk=&cvid=0F96353E2A2C44F88490DCCD3C491A44

allow[2'lau] alias['eili2s] live 表示动词, 住, 居住, 也可以用来表示 "位于", 比如某个文件位于某个目录: file living under the DocumentRoot.

php的安全设置:http://www.cnblogs.com/thinksasa/archive/2013/02/28/2937644.html

php命令 本身的选项:

-a, interactive shell, 将php作为交互式的环境执行 php> 这时可以执行 php-shell攻击: php的函数 system():执行系统命令,如同shell-terminal, bash, 一样执行os命令, 很恐怖的函数.

-m, show compiled in modules

-i, show php detail information

--ini, show ini configuration info


linu下, 要安装 自己扩展php的模块,(即 phpinfo()没有列出的载入模块列表中的新模块)... module, 或 extension, 是一件很麻烦的事, 可能要自己 用源码进行 编译安装..

You don't have permission to access /sphoto on this server.

关于 "载入的模块"? 首先, 这个是针对谁说的? 这个是针对 服务器引擎, apache, httpd而说的, 是说 服务器引擎, 为了完成 网站功能, 必须采取"类似茶件的方式", --即 ""载入模块的方式" 来运作, 一方面apache要实现很多功能, 另一方面, 开发apache, 写apache的代码, 你不可能把全部功能都包含进去, 那样的话, 你一个apache的代码就很大很大了... 所以 值有apache采用 插件, 采用模块 载入的方式, 才能实现现实的需求!! 类似于ps中的滤镜, firefox的插件... 而 php就正好 只是httpd 载入的一个 模块: libphp5.so, libphp5-zts.so, 其他还有如: mod_actions.so, mod_alias.so 等等


php类对象的$this,self,和parent的使用:

总结:this是指向对象实例的一个指针,在实例化的时候来确定指向;

self是对类本身的一个引用,一般用来指向类中的静态变量;

parent是对父类的引用,一般使用parent来调用父类的构造函数。

::::::::::::;

在php中的final, 也很简单直接, 说明的就是最后的:

用final来修饰类, 表示该类不能被继承,因为是最后的嘛;

用final来修饰方法, 表示该方法不能被重写,不能被override, 因为是最后的嘛.

const和static? 其实,本来这两个关键字根本就没有关系的!

const表示这个 "量" 是一个常量, 既然是常量(包括关键字), 都不能在前面加$, 只有变量才能用$ 符合, 也就是说, $符号表示的是 变量!!! const 常量也要用self::PI类来引用!

static是用来表示 静态的 "变量" 或成员函数, 是变量的, 所以static 要加$的: 如: private static $count=0;

<?php
class clss_a{
private static $name="static class_a";
const PI=3.14;
public $value;
public static function getName(){
return self::$name;
}
//这种写法有误,静态方法不能访问非静态属性 ,
public static function getName2(){
return self::$value;
}
public function getPI(){
return self::PI;
}
}

静态方法不能访问非静态成员变量和成员函数, 这个是很显然的, 你想啊, 要引用非静态的东东,必须要一个对象实例,而静态方法调用时,是没有对象的....

注意const属性的申明格式是const PI=3.14,而不是const $PI=3.14。

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

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

    错误调试, E($msg)? 这个是tp内置的E 方法, E 函数. 它是tp抛异常 的另外一种方式. 默认的异常处理方式是, 在 框架下的 ThinkPHP/Tpl/think_exception. ...

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

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

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

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

  4. ThinkPHP中疑难笔记

    不但要记住核心的东西, 还要记住 相关的 东西: 如php cli的版本是 5.6.14 bulit: sep 30, 2015 tp中, 通常说的系统就是框架; 项目就是 "应用程序&qu ...

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

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

  6. Thinkphp与Ucenter整合笔记

    ucenter手册:http://www.phpddt.com/manual/ucenter/html/index.htm 参考:http://www.thinkphp.cn/topic/1557.h ...

  7. thinkphp v5.1 开发笔记

    一.安装TP5.1 1.使用git安装 <1>下载Tp git clone https://github.com/top-think/think tp5 <2>安装核心库 gi ...

  8. MySql存储过程的创建与使用及在thinkphp中如何调用笔记

    学习sql的存储过程,笔记总结如下: MySQL默认将分号,即";"作为语句的分隔符.如果是这样的话,则一个存储过程将很难正常创建,因为它的BEGIN和END之间可以是任意数量的S ...

  9. POI 操作Excel疑难点笔记

    在POI中,我们可以通过Workbook, Sheet, Row, Cell 对象分别对应Excel文件.工作表.行.单元格. 在POI的使用中,我遇到了几个非常诡异.捉摸不透的问题,现在记录下来. ...

随机推荐

  1. Windows10 会不会成为微软的新起点?

    Because if you change the way you see the world, you can change the world you see. 如果你改变看世界的方式,你就能改变 ...

  2. 【小白的CFD之旅】13 敲门实例【续3】

    接上文[小白的CFD之旅]12 敲门实例[续2] 4 Results4.1 计算监测图形4.2 Graphics4.2.1 壁面温度分布4.2.2 创建截面4.2.3 显示截面物理量4.2.4 Pat ...

  3. java设计模式之组合模式

    组合模式 组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性.掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 & ...

  4. selenium对Alert弹框的多种处理

    Alert弹框是一个很烦人的控件,因为当前页面如果弹出了该弹框,你必须要处理它,不然你就不能操作页面的其它元素,下面我列出了alert弹框在多种场景下的处理办法. 明确知道系统哪个地方会弹alert ...

  5. [bzoj1013][JSOI2008][球形空间产生器sphere] (高斯消元)

    Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧 ...

  6. .Net的内置对象之一 Request

    一.Request简介 Request对象是.net的内置对象之一,也是.net中常用的对象,用于获取客户端的信息,可以使用Request对象访问任何基于HTTP请求传递的所有信息.通过Request ...

  7. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 服务器之间的接口通讯功、信息交换

    1:当远程调用方法时,会有很多种可能性发生.接口调用之后,发生错误是什么原因发生的?反馈给开发人员需要精确.精准.高效率,这时候若能返回出错状态信息的详细信息,接口之间的调用就会非常顺利,各种复杂问题 ...

  8. 【转】NuGet.org 无法访问的解决方法

    打开Nuget,发现又出问题了:未能解析此远程名称:’nuget.org’. 在浏览器中输入 http://nuget.org 会发现是无法打开的. 在cmd命令行里输入: nslookup nuge ...

  9. 详解CSS中:nth-child的用法

    前端的哥们想必都接触过css中一个神奇的玩意,可以轻松选取你想要的标签并给与修改添加样式,是不是很给力,它就是“:nth-child”. 下面我将用几个典型的实例来给大家讲解:nth-child的实际 ...

  10. ROS系统C++代码测试之gtest

    1. 安装gtestsudo apt-get install libgtest-dev 2.修改CMakeLists.txtfind_package(GTest REQUIRED)uncommend ...