A

absolute 绝对的
active 活动的,激活的,标记的一个伪类
align 对齐
alpha 透明度,半透明anchor 锚记
标记是这个单词的缩写
arrow 箭头
auto 自动

B

background 背景border 边框
banner 页面上的一个横条both 二者都是clear 属性的一个属性值
black 黑色bottom 底部,是一个CSS 属性
blink 闪烁box 盒子
block 块br 换行标记
blue 蓝色
bug 软件程序中的错误
body 主体,一个HTML 标记
building 建立
bold 粗体
button 按钮

C

cell 表格的单元格
color 颜色
center 中间,居中
contact 联系
child 孩子
content 内容
circle 圆圈
class 类别
css 层叠样式表
clear 清除
cursor 鼠标指针
cm 厘米
D

dashed 虚线
display 显示,CSS 的一个属
div 就是这个单词的缩写
decoration 装饰
document 文档
default 默认的
dotted 点线
double 双线

E

element 元素

F

father 父亲float 浮动
filter 滤镜,过滤器font 字体
first 第一个for 在循环语句中的一个保留字
fixed 固定的four 4 个

G

gif 一种图像格式green 绿色
gray 灰色

H

hack 常用于CSS 中的一些招数,或者类似于偏方的技巧
here 这里
hand 手
hidden 被隐藏
head 头部
home 首页
height 高度
horizontal 水平的
help 帮助
hover 鼠标指针经过时的效果,或称为“悬停状态”

I

Image 图像
inline 行内
important 重要的
inner 内部的
indent 缩进
italic 意大利体,斜体
index 索引

J

jpg 一种图像格式justify 两端对齐

L

language 语言
line 线
last 最后一个
link 链接
left 左边
list 列表
length 长度

M

margin 外边距
millimeter 毫米
max 最大的
min 最小的
medium 中间
model 模型
menu 菜单
move 移动
middle 中间

N

navigation 导航
none 无,不,没有
new 新的

O

object 对象
orange 橙色
one 一个
outer 外面的
only 仅仅
overflow 溢出
open 打开

P

padding 内边距
point 点
pointer 指针,指示器
purple 紫色
position 定位,位置

R

red 红色
resize 重新设置大小
relative 相对的
right 右边
repeat 重复,平铺
row 行

S

scroll 滚动
silver 银色
size 尺寸
square 方块
solid 固体,实线
static 静态的
solution 方案
strong 强壮,加粗的
son 儿子
style 样式
span 一个HTML 标记

T

table 表格title 标题
td 单元格的HTML 标记
top 顶部
text 文本
tr 表格中“行”的HTML 标记
transitional 过渡的
two 两个
three 三个type 类型
through 穿过

U

underline 下划线
uppercase 大写
upper 上面的
url 网址

V

vertical 竖直的
visited 访问过的

W

white 白色
width 宽度

Y

yellow 黄色

Sublime Text:一款具有代码高亮、语法提示、自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受。相比于难于上手的Vim,浮肿沉重的Eclipse,VS,即便体积轻巧迅速启动的Editplus、Notepad++,在SublimeText面前大略显失色,无疑这款性感无比的编辑器是Coding和Writing最佳的选择,没有之一。
Sublime Text 2和3的对比

相比于2,Sublime Text 3就秒启动一项,就压倒性地胜利了。因此在之后的叙述中都以Sublime Text 3为主角。并且3一直在不断的完善更新,具体的差异可参看Sublime Blog.简单的说:
ST3支持在项目目录里面寻找变量
提供了对标签页更好地支持(更多的命令和快捷键)
加快了程序运行的速度
更新了API,使用Python3.3
强烈推荐朋友们使用3! 唯快不破,不解释。
Sublime Text 3安装插件

Sublime Text的强大就是她拥有强大的课可扩展性。您可根据自己的需要安装不同的插件;这使得她变的无比强大的同时又不失轻便。
插件安装方式一:直接安装:
安装Sublime text 3插件很方便,可以直接下载安装包解压缩到Packages目录(菜单->preferences->packages)。
插件安装方式二:使用Package Control组件安装:
按Ctrl+`调出console(注:安装有QQ输入法的这个快捷键会有冲突的,输入法属性设置-输入法管理-取消热键切换至QQ拼音)粘贴以下代码到底部命令行并回车:
1
import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())
重启Sublime Text 3。如果在Perferences->package settings中看到package control这一项,则安装成功。按下Ctrl+Shift+P调出命令面板输入install 调出 Install Package 选项并回车,然后在列表中选中要安装的插件。
PS:国内使用SublimeText3,经常可能遇到无法安装可用插件问题,可remove掉Package Control重新安装下;如遇到连Package Control也无法安装,则可以在别处拷贝一份关于Package Control的文件-(Package Control.sublime-package)存放于Installed Packages目录之下即可。
如果如上述操作,还是不能正确安装,并且在 sublime 的 console 安装 package control 出现 275309 错误,那么去打开 Preferences->Settings 找到 ignored_packages 配置选项,删除其中对 Package Control 的约束即可(update@16-12-06)。
Sublime Text 3插件推荐

无插件,不神器!根据自己的需要定制属于自己的强大插件集;下面是一些常用的推荐。
Sublime Text3插件:增强篇
20个强大的SublimeText插件
作为在移动端旧游之后,又Web端新游的自己,墙裂推荐以下这么几款插件:
MarkDown Editing
SublimeText不仅仅是能够查看和编辑 Markdown 文件,但它会视它们为格式很糟糕的纯文本。这个插件通过适当的颜色高亮和其它功能来更好地完成这些任务。关于如何在SublimeText下高效些东西可参见文章:sublime text 2(3)下的Markdown写作 抑或是前段时间写下的追寻高效工作的一路折腾㈡
SideBarFolders
打开的文件夹都太多了? 来用这个来管理文件夹,世界原来也可以这么美好。⭐️⭐️⭐️⭐️⭐️
SideBarFolders
SideBarFolders

Sublime Terminal
这个插件可以让你在Sublime中直接使用终端打开你的项目文件夹,并支持使用快捷键。
ColorPicker
通常,如果你想使用一个颜色选择器则可能打开 Photoshop 或 GIMP。而在 Sublime Text 中,你可以使用内置的颜色选择器。安装完成后,只要按下Ctrl / Cmd + Shift + C 快捷键。
SublimeREPL
这可能是对程序员很有用的插件。SublimeREPL 允许你在 Sublime Text 中运行各种语言(NodeJS , Python,Ruby, Scala 和 Haskell 等等)。
Ctags插件
有童鞋抱怨Sublime Text不能支持函数的跳转(比如像Eclipse那样,按住Control点击该方法或者对象,即可跳转到定义的地方; Alt+←即可回到原处)。其实Sublime Text也可以借助插件实现之(当然,有些情况下:Can not find defination)毕竟这个也是借助正则来匹配完成的。因此这个也就要求代码很规范。这个插件相对来讲会有些麻烦,具体的可以参见:Sublime Text ctags 的配置.
Update @2016-11: 在最新的3124版本中,Sublime已经注入了函数Show Definition功能————which will show where a symbol is defined when hovering over it with the mouse;具体可参见Sublime Text 3 Build 3124。如此一来,Ctags 插件就显得很鸡肋了,而且它的配置辣么麻烦。
SublimeLinter插件
SublimeLinter 是前端编码利器——Sublime Text 的一款插件,用于高亮提示用户编写的代码中存在的不规范和错误的写法,支持 JavaScript、CSS、HTML、Java、PHP、Python、Ruby 等十多种开发语言。这篇文章介绍如何在 Windows 中配置 SublimeLinter 进行 JS & CSS 校验。
比如写例如像lua这样的弱语言脚本代码,有这个可以规避掉很多不该有的低级错误吧?当然这也需要你SublimeLinter安装完毕之后再安装一个SublimeLinter-lua即可。具体的使用可以参见:借助 SublimeLinter 编写高质量的 JavaScript & CSS 代码
SideBarEnhancements插件
SideBarEnhancements是一款很实用的右键菜单增强插件;在安装该插件前,在Sublime Text左侧FOLDERS栏中点击右键,只有寥寥几个简单的功能;安装了就相当于给其丰了大胸一般。⭐️⭐️⭐️⭐️
更强大的是,该插件还能让我们自定义快捷键呼出某个浏览器以预览页面!这样就不用到项目目录下寻找和拖动到特定浏览器中预览了。
安装此插件后,点击菜单栏的preferences->package setting->side bar->Key Building-User,键入以下代码:
1
2
3
4
5
6
7
8
9
10
11
[
{ "keys": ["ctrl+shift+c"], "command": "copy_path" },
//chrome
{ "keys": ["f2"], "command": "side_bar_files_open_with",
"args": {
"paths": [],
"application": "C:\Users\jeffj\AppData\Local\Google\Chrome\Application\chrome.exe",
"extensions":"."
}
}
]
这里设置按Ctrl+Shift+C复制文件路径,按F2即可在Chrome浏览器预览效果(如果需要的话,也可以根据自己的需要为Firefox,Safari,IE,Opera等加上),当然你也可以自己定义喜欢的快捷键,最后注意代码中的浏览器路径要以自己电脑里的文件路径为准。
HTML-CSS-JS Prettify
一款集成了格式化(美化)html、css、js三种文件类型的插件,即便html,js写在PHP文件之内。插件依赖于nodejs,因此需要事先安装nodejs,然后才可以正常运行。插件安装完成后,快捷键ctrl+shift+H完成当前文件的美化操作。插件对html、css文件的美化不是非常满意,但还可以,后面将说明如何修改css美化脚本。本人用起来超级爽的,鉴于篇幅,就不赘述,可以参见这篇介绍。
CSScomb CSS属性排序:
有时候看看自己写的CSS文件,会不会觉得属性很乱查找不易维护难?CSScomb可以按照一定的CSS属性排序规则,将杂乱无章的CSS属性进行重新排序。选中要排序的CSS代码,按Ctrl+Shift+C,即可对CSS属性重新排序了,代码从此简洁有序易维护,如果不款选代码则插件将排序文件中所有的CSS属性。当然,可以自己自定义CSS属性排序规则,打开插件目录里的CSScomb.sublime-settings文件,更改里面的CSS属性顺序就行了。因为这个插件使用PHP写的,要使他工作需要在环境变量中添加PHP的路径,具体请看github上的说明。
SublimeTmpl 快速生成文件模板
一直都很奇怪为什么sublime text 3没有新建文件模板的功能,像html头部的DTD声明每次都要复制粘贴。用SublimeTmpl这款插件终于可以解脱了,SublimeTmpl能新建html、css、javascript、php、python、ruby六种类型的文件模板,所有的文件模板都在插件目录的templates文件夹里,可以自定义编辑文件模板。⭐️⭐️⭐️⭐️+
SublimeTmpl默认的快捷键:
1
2
3
4
5
6
ctrl+alt+h html
ctrl+alt+j javascript
ctrl+alt+c css
ctrl+alt+p php
ctrl+alt+r ruby
ctrl+alt+shift+p python
如果想要新建其他类型的文件模板的话,先自定义文件模板方在templates文件夹里,再分别打开Default (Windows).sublime-keymap、Default.sublime-commands、Main.sublime-menu、SublimeTmpl.sublime-settings这四个文件照着里面的格式自定义想要新建的类型,这里就详细介绍了,请各位自己折腾哈~
Javascript-API-Completions:
支持Javascript、JQuery、Twitter Bootstrap框架、HTML5标签属性提示的插件,是少数支持sublime text 3的后缀提示的插件,HTML5标签提示sublime text3自带,不过JQuery提示还是很有用处的,也可设置要提示的语言。
sublime-jq-plugin
sublime-jq-plugin
SFTP:快速编辑远程服务器文件
在Win下用Xftp 和 WinScp,被这种需要切换点击or F5刷新的手动操作蛋疼到无语;故此一遇见这SFTP,顿觉这世界都美好了许多。当然Sublime下面也有些其他同步插件,比如FtpSnyc,但是配置起来的错误提示一点都不人性化,就毫不留情的舍弃了。Sublime下有SFTP,只要Ctrl+S即可同步本地到服务器,妥妥的爽歪歪有么有?如何配置,请参见在 Sublime Text中使用 SFTP 插件快速编辑远程服务器文件;如欲使用FtpSync可参见Sublime使用及FtpSync远程同步;大道至简,因简而悦;开心垒码,值得折腾。
WakaTime – 记录你的Code时间;
WakaTime可以做到精确地统计到你花在某个项目上的时间;WakaTime针对不同的IDE,拥有不同的插件,在Sublime上安装着插件,就能统计到我使用Sublime进行的所有项目的行为。可以高效管理和知晓自己code时间;并且,统计完善, 适合发朋友圈装逼(如果你喜欢的话)~
Waka的基本设计和rescuetime类似。每个人注册完将获取一个key,装一个客户端,把key输进去(登陆是同一个道理),然后它就把本地的所有行为带个key扔给服务器来统计,一段时间之后给你个报表。不过Waka做的真的很精准,精确到每一个文件用了多少秒,每一种语言用了多少时间。
WakaTime
WakaTime
安装和使用都很简单,请参见这里。另外一篇比较详细的文章时间都去哪了?用RescueTime和WakaTime来记录你的时间,对RescueTime和WakaTime有一个更为详细的叙述,可以一读。
Doc​Blockr: 代码块注释
可以快速的对函数进行注释。保持代码规范。支持多种语言,有 JavaScript (including ES6), PHP, ActionScript, Haxe, CoffeeScript, TypeScript, Java, Apex, Groovy, Objective C, C, C++ and Rust.
/
:回车创建一个代码块注释
/**:回车在自动查找函数中的形参等等。
它会生成 JSDoc 格式的注释。如果你从没有使用过类似的工具,DocBlockr 会让你觉得以前没有它是如何写代码的。帮助你创造你的代码注释,通过解析功能,参数,变量,并且自动添加基本项目;如果你愿意其更为便捷,不妨再结合AutoHotKey,高效注释,由此开启。
sublime-text-git: Git 版本控制
可视化的操作:帮助你与你的Git repo协议进行交互。它支持很多命令像init,push, pull, branch, stash,等等。使用它当然提前需要安装 Git,并做好响应的配置;对于这个插件,不妨看下这篇文章 Using Git Inside of Sublime Text to Improve Workflow,相信她的伴随不会让你失望的。⭐️⭐️⭐️⭐️⭐️
advancedNewFile: 快速创建文件
当我们在 Sublime Text 编辑器里我们可以通过快捷键command+n(win: ctrl+n),来新建一个文件,然后command+s(Win:ctrl+s)进行弹出保存框,填写文件名进行保存。还是老问题,麻烦!!我们接下来就通过安装advancedNewFile插件来提升我们在Sublime Text编辑器下的创建文件速度。⭐️⭐️⭐️⭐️
关乎其使用,安装完成之后,运用快捷键command+alt+n(win: ctrl+alt+n)
,Sublime Text底部会弹出输入框;我们只需在这个输入框里输入我们需要新建的文件名回车即可(我们甚至可以带路径,譬如:src/components/perfect.vue;这就会在当前项目目录下,建立该文件;需要注意的是这路径前面不可加 ‘/‘, 这会使得建立的路径成为用户目录,而非改项目目录)。默认情况下文件会存储在当前目录,如果当前没有目录,会存储在用户的家目录。
TrailingSpaces: 检测并一键去除代码中多余的空格
这款插件本身倒没什么。但是如果你写前端,并处在当下这个时代,她就很有用(话说,Eslint 等工程限制级工具必须使用吧,那么项目对于空格的约定肯定是有必要的,但也会令你头疼吧?那么这款插件的作用就体现出来了)她可以自动将多余的空格标红,以示提醒。当然,如果你想一键摒除之,这也很好办,加入一点配置即可:在 Preferences / Key Bindings – User加上如下代码即可(数组内部,当然快捷键可自行约定,我这里用的是 ctrl+shift+d );(⭐️⭐️⭐️⭐️⭐️ For Front-End)
1
{ "keys": ["ctrl+shift+d"], "command": "delete_trailing_spaces" }
剩下些许其他的可以按需安装的插件,比如:
ConvertToUTF8 支持 GBK, BIG5, EUC-KR, EUC-JP, Shift_JIS 等编码的插件
Bracket Highlighter 用于匹配括号,引号和html标签。对于很长的代码很有用。安装好之后,不需要设置插件会自动生效
DocBlockr 可以自动生成PHPDoc风格的注释。它支持的语言有Javascript, PHP, ActionScript, CoffeeScript, Java, Objective C, C, C++
Emmet(Zen Coding)快速生成HTML代码段的插件,强大到无与伦比:可以超快速编写HTML/CSS/JS,当然这个插件还支持多种编译环境,如常见的:Eclipse/Aptana、Coda、Notepad++、Adobe Dreamweaver、TextMate等,web开发必备!!!。⭐️⭐️⭐️⭐️⭐️
jsFormat 格式化js代码,懂者自懂;强迫症Coder必备!默认快捷键Ctrl+Alt+F。
phpFormat 格式化php代码,懂者自懂;强迫症Coder必备!
CSS Compact Expand CSS属性展开收缩:写CSS的盆友,喜欢将其写多行还是一行(个人喜欢将其格式化为多行)?如果阅读别人的代码不符合自己的习惯,可以用CSS Compact Expand这个插件将CSS格式化一下,按 Ctrl+Alt+[ 收缩CSS代码为一行显示,按 Ctrl+Alt+] 展开CSS代码为多行显示;强迫症Coder必备!。
Autoprefixer插件:这是一款CSS3私有前缀自动补全插件;该插件使用CanIUse资料库(当然,SublimeText自然也有CanIUse这个插件咯),能精准判断哪些属性需要什么前缀,与CssComb插件一样,该插件也需要系统已安装Node.js环境;使用方法:在输入CSS3属性后(冒号前)按Tab键即可。
YUI Compressor:压缩JS和CSS文件,按F7键后,若压缩当前文件(demo.js),则压缩后的文件(demo.min.js)保存在该文件的同级目录,需要安装java的JDK。使用方法:YUI Compressor
ClickableURLs:可点击的URL
使用小插件ClickableURLs可以让文件中的URL能够点击。
EncodingHelper:编码众多,比较丰富。安装后,在右下角的UTT-8右键可以将其他编码转换成UTF-8。
WordCount:可以实时显示当前文件的字数。安装后,后下角多出字数。
SyncedSideBar: 每次打开文件,侧边栏都会同步显示该文件所在目录树中的位置(如果打开的文件是目录树的子集,还能将目录树自动展开,真是爱之不已,挺有用的一款插件)。⭐️⭐️⭐️⭐️⭐️
AutoFileName:快捷输入文件名,文件路径自动提示的。自动完成文件名的输入,如图片选取,输入”/”即可看到相对于本项目文件夹的其他文件。⭐️⭐️⭐️⭐️
Vue Syntax Highlight: Vue(*.vue)高亮插件;于前端而言,使用Vue框架开发,是一个很酷爽的存在,那么此插件也就很有必要拥有;同时Jade, SASS等插件也是很有拥有的必要,谁用谁知道(说到用vue, 这vue-cli就蛮有使用的必要了( Webpack, Eslint, Test等都配置完善,十分贴心); 而写Js代码,于稍大项目 Eslint 就很有使用必要,而 sublime 在针对使用 Eslint 的 *.vue文件,目测还没有很好格式化插件,坐等诞生

上海优翰最初一切都是为了有效提升品牌价值。唯诺咨询、创意设计、品牌策略是和一多年实践得出提升品牌价值不可或缺、缜密的工作链。我们充分理解、尊重客户的意愿,并充分利用再创新理念、专业品牌分析工具、市场网络和社会。
网品牌网站界面设计
凭借丰富的网站策划知识及先进的网站设计水平,上海优翰的开发团队完全能胜任各种网站(互联网应用程序)的设计开发工作。从化妆品网站,汽车类网站,服装网站等,唯诺科技都可以根据您的需求,设计出各类型个性化的网站!
企业网站建设开发
网站是企业产品和服务的网上包装。客户对网站品质的第一印象决定了他们对您的产品和服务的信心。拥有一个美观实用的企业门面网站是树立网络形象的第一步,他为您顺利开展网络推广奠定了坚固的基石.
互动网站视觉设计
主要在于对产品、品牌的内涵了解程度、美术功底、Flash应用技术的把握上面。通过Flash、视频技术等,突出产品或品牌的风采及形象、让人获得耳目一新的视听效果、激发消费者的购买、拥有、享受热情是Flash网站的最大目标.
本内容转载上海优翰信息科技有限公司:http://www.shyohan.com/article/industry/20.html

Thinkphp常用配置
CHECK_FILE_CASE -- windows环境下面的严格检查大小写。

/* 项目设定 */
    'APP_DEBUG'    => false, // 是否开启调试模式
    'APP_DOMAIN_DEPLOY'     => false,   // 是否使用独立域名部署项目
    'APP_PLUGIN_ON'         => false,   // 是否开启插件机制
    'APP_FILE_CASE'         => false,   // 是否检查文件的大小写 对Windows平台有效
    'APP_GROUP_DEPR'        => '.',     // 模块分组之间的分割符
    'APP_GROUP_LIST'        => '',      // 项目分组设定,多个组之间用逗号分隔,例如'Home,Admin'
    'APP_AUTOLOAD_REG'      => false,   // 是否开启SPL_AUTOLOAD_REGISTER
    'APP_AUTOLOAD_PATH'     => 'Think.Util.',// __autoLoad 机制额外检测路径设置,注意搜索顺序
    'APP_CONFIG_LIST'       => array('taglibs','routes','tags','htmls','modules','actions'),// 项目额外需要加载的配置列表,默认包括:taglibs(标签库定义),routes(路由定义),tags(标签定义),(htmls)静态缓存定义, modules(扩展模块),actions(扩展操作)

 /* Cookie设置 */
    'COOKIE_EXPIRE'         => 3600,    // Coodie有效期
    'COOKIE_DOMAIN'         => '',      // Cookie有效域名
    'COOKIE_PATH'           => '/',     // Cookie路径
    'COOKIE_PREFIX'         => '',      // Cookie前缀 避免冲突


/* 数据库设置 */
    'DB_TYPE'               => 'mysql',     // 数据库类型
     'DB_HOST'               => 'localhost', // 服务器地址
     'DB_NAME'               => '',          // 数据库名
     'DB_USER'               => 'root',      // 用户名
     'DB_PWD'                => '',          // 密码
     'DB_PORT'               => 3306,        // 端口
     'DB_PREFIX'             => 'think_',    // 数据库表前缀
   'DB_SUFFIX'             => '',          // 数据库表后缀
    'DB_FIELDTYPE_CHECK'    => false,       // 是否进行字段类型检查
    'DB_FIELDS_CACHE'       => true,        // 启用字段缓存
    'DB_CHARSET'            => 'utf8',      // 数据库编码默认采用utf8
    'DB_DEPLOY_TYPE'        => 0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'DB_RW_SEPARATE'        => false,       // 数据库读写是否分离 主从式有效


 /* 数据缓存设置 */
    'DATA_CACHE_TIME' => -1,      // 数据缓存有效期
    'DATA_CACHE_COMPRESS'   => false,   // 数据缓存是否压缩缓存
    'DATA_CACHE_CHECK' => false,   // 数据缓存是否校验缓存
    'DATA_CACHE_TYPE' => 'File', // 数据缓存类型,支持:File|Db|Apc|Memcache|Shmop|Sqlite| Xcache|Apachenote|Eaccelerator
    'DATA_CACHE_PATH'       => TEMP_PATH,// 缓存路径设置 (仅对File方式缓存有效)
    'DATA_CACHE_SUBDIR' => false,    // 使用子目录缓存 (自动根据缓存标识的哈希创建子目录)
    'DATA_PATH_LEVEL'       => 1,        // 子目录缓存级别

    /* 错误设置 */
    'ERROR_MESSAGE' => '您浏览的页面暂时发生了错误!请稍后再试~',//错误显示信息,非调试模式有效
    'ERROR_PAGE'    => '', // 错误定向页面

    /* 静态缓存设置 */
    'HTML_CACHE_ON'   => false,   // 默认关闭静态缓存
    'HTML_CACHE_TIME' => 60,      // 静态缓存有效期
    'HTML_READ_TYPE'        => 0,       // 静态缓存读取方式 0 readfile 1 redirect
    'HTML_FILE_SUFFIX'      => '.shtml',// 默认静态文件后缀

    /* 语言设置 */
    'LANG_SWITCH_ON'        => false,   // 默认关闭多语言包功能
    'LANG_AUTO_DETECT'      => true,   // 自动侦测语言 开启多语言功能后有效

    /* 日志设置 */
    'LOG_RECORD'            => false,   // 默认不记录日志
    'LOG_FILE_SIZE'         => 2097152, // 日志文件大小限制
    'LOG_RECORD_LEVEL'      => array('EMERG','ALERT','CRIT','ERR'),// 允许记录的日志级别

    /* 分页设置 */
   'PAGE_ROLLPAGE'         => 5,      // 分页显示页数
   'PAGE_LISTROWS'         => 20,     // 分页每页显示记录数

    /* SESSION设置 */
    'SESSION_AUTO_START'    => true,    // 是否自动开启Session
    // 内置SESSION类可用参数
    //'SESSION_NAME'          => '',      // Session名称
    //'SESSION_PATH'          => '',      // Session保存路径
    //'SESSION_CALLBACK'      => '',      // Session 对象反序列化时候的回调函数

    /* 运行时间设置 */
    'SHOW_RUN_TIME'   => false,   // 运行时间显示
    'SHOW_ADV_TIME'   => false,   // 显示详细的运行时间
    'SHOW_DB_TIMES'   => false,   // 显示数据库查询和写入次数
    'SHOW_CACHE_TIMES' => false,   // 显示缓存操作次数
    'SHOW_USE_MEM'   => false,   // 显示内存开销
    'SHOW_PAGE_TRACE' => false,   // 显示页面Trace信息 由Trace文件定义和Action操作赋值
    'SHOW_ERROR_MSG'        => true,    // 显示错误信息

 /* 模板引擎设置 */
    'TMPL_ENGINE_TYPE' => 'Think',     // 默认模板引擎 以下设置仅对使用Think模板引擎有效
    'TMPL_DETECT_THEME'     => false,       // 自动侦测模板主题
    'TMPL_TEMPLATE_SUFFIX' => '.html',     // 默认模板文件后缀
    'TMPL_CACHFILE_SUFFIX' => '.php',      // 默认模板缓存后缀
    'TMPL_DENY_FUNC_LIST' => 'echo,exit', // 模板引擎禁用函数
    'TMPL_PARSE_STRING'     => '',          // 模板引擎要自动替换的字符串,必须是数组形式。
    'TMPL_L_DELIM'          => '{',   // 模板引擎普通标签开始标记
    'TMPL_R_DELIM'          => '}',   // 模板引擎普通标签结束标记
    'TMPL_VAR_IDENTIFY'     => 'array',     // 模板变量识别。留空自动判断,参数为'obj'则表示对象
    'TMPL_STRIP_SPACE'      => false,       // 是否去除模板文件里面的html空格与换行
    'TMPL_CACHE_ON'   => true,        // 是否开启模板编译缓存,设为false则每次都会重新编译
    'TMPL_CACHE_TIME' => -1,         // 模板缓存有效期 -1 为永久,(以数字为值,单位:秒)
    'TMPL_ACTION_ERROR'     => 'Public:success', // 默认错误跳转对应的模板文件
    'TMPL_ACTION_SUCCESS'   => 'Public:success', // 默认成功跳转对应的模板文件
    'TMPL_TRACE_FILE'       => THINK_PATH.'/Tpl/PageTrace.tpl.php',     // 页面Trace的模板文件
    'TMPL_EXCEPTION_FILE'   => THINK_PATH.'/Tpl/ThinkException.tpl.php',// 异常页面的模板文件
    'TMPL_FILE_DEPR'=>'/', //模板文件MODULE_NAME与ACTION_NAME之间的分割符,只对项目分组部署有效
    // Think模板引擎标签库相关设定
    'TAGLIB_BEGIN'          => '<', // 标签库标签开始标记
    'TAGLIB_END'            => '>', // 标签库标签结束标记
    'TAGLIB_LOAD'           => true, // 是否使用内置标签库之外的其它标签库,默认自动检测
    'TAGLIB_BUILD_IN'       => 'cx', // 内置标签库名称(标签使用不必指定标签库名称),以逗号分隔
    'TAGLIB_PRE_LOAD'       => '',   // 需要额外加载的标签库(须指定标签库名称),多个以逗号分隔
    'TAG_NESTED_LEVEL' => 3,    // 标签嵌套级别
    'TAG_EXTEND_PARSE'      => '',   // 指定对普通标签进行扩展定义和解析的函数名称。

    /* 表单令牌验证 */
    'TOKEN_ON'                    =>   true,     // 开启令牌验证
    'TOKEN_NAME'                =>   '__hash__',    // 令牌验证的表单隐藏字段名称
    'TOKEN_TYPE'                 =>    'md5',   // 令牌验证哈希规则

    /* URL设置 */
'URL_CASE_INSENSITIVE' => false,   // URL地址是否不区分大小写
    'URL_ROUTER_ON'         => false,   // 是否开启URL路由
    'URL_DISPATCH_ON'       => true, // 是否启用Dispatcher
    'URL_MODEL'      => 1,       // URL访问模式,可选参数0、1、2、3,代表以下四种模式:
    // 0 (普通模式); 1 (PATHINFO 模式); 2 (REWRITE 模式); 3 (兼容模式) 当URL_DISPATCH_ON开启后有效; 默认为PATHINFO 模式,提供最好的用户体验和SEO支持
    'URL_PATHINFO_MODEL'    => 2,       // PATHINFO 模式,使用数字1、2、3代表以下三种模式:
    // 1 普通模式(参数没有顺序,例如/m/module/a/action/id/1);
    // 2 智能模式(系统默认使用的模式,可自动识别模块和操作/module/action/id/1/ 或者 /module,action,id,1/...);
    // 3 兼容模式(通过一个GET变量将PATHINFO传递给dispather,默认为s index.php?s=/module/action/id/1)
    'URL_PATHINFO_DEPR'     => '/', // PATHINFO模式下,各参数之间的分割符号
    'URL_HTML_SUFFIX'       => '', // URL伪静态后缀设置

    /* 系统变量名称设置 */
    'VAR_GROUP'             => 'g',     // 默认分组获取变量
    'VAR_MODULE'            => 'm', // 默认模块获取变量
    'VAR_ACTION'            => 'a', // 默认操作获取变量
    'VAR_ROUTER'            => 'r',     // 默认路由获取变量
    'VAR_PAGE'              => 'p', // 默认分页跳转变量
    'VAR_TEMPLATE'          => 't', // 默认模板切换变量
'VAR_LANGUAGE'          => 'l', // 默认语言切换变量
    'VAR_AJAX_SUBMIT'       => 'ajax', // 默认的AJAX提交变量
    'VAR_PATHINFO'          => 's', // PATHINFO 兼容模式获取变量例如 ?s=/module/action/id/1 后面的参数取决于URL_PATHINFO_MODEL 和 URL_PATHINFO_DEPR


 /* 模板引擎设置 */
    'TMPL_ENGINE_TYPE' => 'Think',     // 默认模板引擎 以下设置仅对使用Think模板引擎有效
    'TMPL_DETECT_THEME'     => false,       // 自动侦测模板主题
    'TMPL_TEMPLATE_SUFFIX' => '.html',     // 默认模板文件后缀
    'TMPL_CACHFILE_SUFFIX' => '.php',      // 默认模板缓存后缀
    'TMPL_DENY_FUNC_LIST' => 'echo,exit', // 模板引擎禁用函数
    'TMPL_PARSE_STRING'     => '',          // 模板引擎要自动替换的字符串,必须是数组形式。
    'TMPL_L_DELIM'          => '{',   // 模板引擎普通标签开始标记
    'TMPL_R_DELIM'          => '}',   // 模板引擎普通标签结束标记
    'TMPL_VAR_IDENTIFY'     => 'array',     // 模板变量识别。留空自动判断,参数为'obj'则表示对象
    'TMPL_STRIP_SPACE'      => false,       // 是否去除模板文件里面的html空格与换行
    'TMPL_CACHE_ON'   => true,        // 是否开启模板编译缓存,设为false则每次都会重新编译
    'TMPL_CACHE_TIME' => -1,         // 模板缓存有效期 -1 为永久,(以数字为值,单位:秒)
    'TMPL_ACTION_ERROR'     => 'Public:success', // 默认错误跳转对应的模板文件
    'TMPL_ACTION_SUCCESS'   => 'Public:success', // 默认成功跳转对应的模板文件
    'TMPL_TRACE_FILE'       => THINK_PATH.'/Tpl/PageTrace.tpl.php',     // 页面Trace的模板文件
    'TMPL_EXCEPTION_FILE'   => THINK_PATH.'/Tpl/ThinkException.tpl.php',// 异常页面的模板文件
    'TMPL_FILE_DEPR'=>'/', //模板文件MODULE_NAME与ACTION_NAME之间的分割符,只对项目分组部署有效
    // Think模板引擎标签库相关设定
    'TAGLIB_BEGIN'          => '<', // 标签库标签开始标记
    'TAGLIB_END'            => '>', // 标签库标签结束标记
    'TAGLIB_LOAD'           => true, // 是否使用内置标签库之外的其它标签库,默认自动检测
    'TAGLIB_BUILD_IN'       => 'cx', // 内置标签库名称(标签使用不必指定标签库名称),以逗号分隔
    'TAGLIB_PRE_LOAD'       => '',   // 需要额外加载的标签库(须指定标签库名称),多个以逗号分隔
    'TAG_NESTED_LEVEL' => 3,    // 标签嵌套级别
    'TAG_EXTEND_PARSE'      => '',   // 指定对普通标签进行扩展定义和解析的函数名称。

    /* 表单令牌验证 */
    'TOKEN_ON'                    =>   true,     // 开启令牌验证
    'TOKEN_NAME'                =>   '__hash__',    // 令牌验证的表单隐藏字段名称
    'TOKEN_TYPE'                 =>    'md5',   // 令牌验证哈希规则

    /* URL设置 */
'URL_CASE_INSENSITIVE' => false,   // URL地址是否不区分大小写
    'URL_ROUTER_ON'         => false,   // 是否开启URL路由
    'URL_DISPATCH_ON'       => true, // 是否启用Dispatcher
    'URL_MODEL'      => 1,       // URL访问模式,可选参数0、1、2、3,代表以下四种模式:
    // 0 (普通模式); 1 (PATHINFO 模式); 2 (REWRITE 模式); 3 (兼容模式) 当URL_DISPATCH_ON开启后有效; 默认为PATHINFO 模式,提供最好的用户体验和SEO支持
    'URL_PATHINFO_MODEL'    => 2,       // PATHINFO 模式,使用数字1、2、3代表以下三种模式:
    // 1 普通模式(参数没有顺序,例如/m/module/a/action/id/1);
    // 2 智能模式(系统默认使用的模式,可自动识别模块和操作/module/action/id/1/ 或者 /module,action,id,1/...);
    // 3 兼容模式(通过一个GET变量将PATHINFO传递给dispather,默认为s index.php?s=/module/action/id/1)
    'URL_PATHINFO_DEPR'     => '/', // PATHINFO模式下,各参数之间的分割符号
    'URL_HTML_SUFFIX'       => '', // URL伪静态后缀设置

    /* 系统变量名称设置 */
    'VAR_GROUP'             => 'g',     // 默认分组获取变量
    'VAR_MODULE'            => 'm', // 默认模块获取变量
    'VAR_ACTION'            => 'a', // 默认操作获取变量
    'VAR_ROUTER'            => 'r',     // 默认路由获取变量
    'VAR_PAGE'              => 'p', // 默认分页跳转变量
    'VAR_TEMPLATE'          => 't', // 默认模板切换变量
'VAR_LANGUAGE'          => 'l', // 默认语言切换变量
    'VAR_AJAX_SUBMIT'       => 'ajax', // 默认的AJAX提交变量
    'VAR_PATHINFO'          => 's', // PATHINFO 兼容模式获取变量例如 ?s=/module/action/id/1 后面的参数取决于URL_PATHINFO_MODEL 和 URL_PATHINFO_DEPR

继承
继承使用的场景:
当别人有,自己没有,还想要,去继承那个人
继承的格式
class A extends B{}
如果A类继承了B类,A类中就拥有了B类中所有成员属性和成员方法,但是除了私有成员
访问权限(继承等级:321)

        public          protected       private

在类的外部 ok no no
在子类中 ok ok no
在本类中 ok ok ok
public等级为3,protected等级为2,private等级为1;
子类对父类方法的重写(覆盖)

当子类出现与父类同名的方法时,就是对父类方法的覆盖重写
如果调用该方法,调用时优先调用本类的方法(子类的方法)
在子类中调用父类中的成员方法:

parent::方法名()
PHP只支持单继承

一个子类只能有一个父类,但是一个类可以被多个子类继承;
可以有多层继承关系;
如果A类继承了B类,B类继承了C类,D类继承了A类,
D类就同时拥有了ABC三个类的所有的非私有的成员属性和成员方法;
如果需要使用多个类的功能时,可以链式继承

class A extends B {}
class B extends C {}
class D extends A {}

final 关键字 最终 常量

final 关键字只能用来修饰方法和类;
被final修饰的类不能被继承,不允许有子类
被final修饰的成员方法,不能被子类覆盖(重写)
作用:为了安全;没有必要;
static关键字 静态

可以和PPP修饰符一起来修饰成员属性(静态属性)和成员方法(静态方法);不需要使用new关键字来实例化对象就可以直接访问和调用

访问形式:
在类的外部 类名::$属性名 类名::方法名()
在类的内部 self::$属性名 self::方法名()

在静态方法中不允许使用$this 关键字
在静态方法中只能访问静态属性和静态方法
静态属性是作为该类对象的共有属性存在的
static 应用
单模式设计模式(单例,单件)

在当前脚本中只产生一个该类对象
在同脚本中一个类只能有一个实例化对象存在

具体的方法:
1,阻止在类的外部使用new 关键字来创建对象
将构建方法私有化
2,在类的内部创建一个对象
声明静态方法,在类的内部创建对象
3,将创建的对象存入一个位置,存档,作为判断的依据
声明静态方法来存放对象,存档
单态设计模式代码:

<?php
/*
===================================================
    static静态模式应用:
    在当前脚本中只产生一个该类对象,
    在同脚本中一个类只能有一个实例化对象存在
方法:1,阻止在类的外部使用new关键字来创建对象
        //将构造方法私有化
    2,在类的内部创建一个对象
        //声明静态方法 在类的内部创建对象
    3,将创建的对象存入一个位置,存档,作为判断的依据 
        //声明静态方法来存放对象 存档
====================================================
*/
      class Demo{
          static public $obj= null;//定义一个静态属性
          private function __construct(){
              echo "实例化了一个对象";
          }
          static public function getobj(){
              if(self::$obj == null){
                  $ob = new Demo();
                  self::$obj=$ob;
              }
              return self::$obj;
          }
      }
      Demo::getobj();
      Demo::getobj();
      Demo::getobj();
      Demo::getobj();
      //以上结果只会输出一次