ThinkPHP 新手入门教程(二)之基础概念(上)

知道91 | ThinkPHP | 2014-02-21 | 阅读:9029

在学习ThinkPHP前,你应该了解一些常用的编程概念,学会这些概念对于编程的整体把握有很大的帮助,同时当你在找新工作的时候这些概念也会经常被用到,下面就介绍一些程序员需要学到的专业术语。

什么是LAMP?

在学习 PHP 的过程中我们经常会看到 LAMP 这个词,有经验的人会知道一般这种全是大写字母的词通常是英文单词的缩写,同样 LAMP 也是几个英语单词的缩写。

  • L(Linux)代表 Linux 操作系统,PHP 的最佳部署环境还是 Linux。我们通常开发在 Windows 上就比较方便,真正上线的时候部署到 Linux 服务器上。
  • A (Apache) 代表 Apache 网络服务器,这个是 Linux 操作系统上运行 PHP 脚本的最佳网络服务器。在 Windows 上我们可以使用 IIS。
  • M(MySQL) 代表 MySQL 数据库,作为配合 PHP 使用的最佳数据库,它小巧方便,不会像 Oracle 和 MSSQL 那样稍显臃肿,PHP 和 MSSQL 似乎天生就是绝佳的一对。
  • P (PHP) 当然代表的是 PHP 开发语言了。这正是我们使用 ThinkPHP 框架需要的编程语言。

当你听说 LAMP 的时候你应该还听说过 WAMP 这个概念,WAMP 与 LAMP 不同只是它是 Windows 操作系统下的,所以 WAMP 中的 W 是 Windows 的意思。

什么是 OOP?

OOP 又是英文单词的简写(Object Oriented Programming),中文意思你应该很熟悉就是“面向对象编程”。我们老是在说面向对象编程,那么什么是面向对象编程呢?我认为面向对象编程几个很形象的例子就是盖楼房。当我们建筑一幢楼房的时候,我们就是把砖、混凝土、地基、材料以及其他东西有机的结合起来,工人分工有序,不同的工程小队做不同的工作,建地基的修建地基,烧制砖的烧制砖块,和混凝土的和混凝土,工程师不需要了解每一个步骤是怎么完成的,只需要把各个部分完成的结构组装成楼房。一个程序项目不同的人员就相当于是建筑过程中扮演的不同的工人(项目总负债人是建筑总工程师,小组组长就是施工小队队长,程序员就是建筑工人)。然而这一切的分工合作最后完成共同完整整个程序项目的过程就是一个面向对象编程的过程。

面向对象编程具有的特点如下:

  • 组件:一个整体的完成单元(建筑总的混凝土就是一个组件)。
  • 抽象性:不关注具体是什么,具体的结构了解,简单说就是一个轮廓(不管哪一种建筑房屋中地基、混凝土、砖石都是需要的,强调的是一个大概的轮廓,程序中经常涉及到的抽象类就是这个原因,不需要它具体做什么,只需明白它是代表什么,相当于一个具体动作行为的代名词。
  • 封装 :就是程序中的方法、API等,我们知道它能干什么,怎么用,用的时候直接使用就行了,相当于一个独立的单元(比如建筑中砌墙的工人要用砖,工人用就是了,他不关心砖是怎么烧制的)。
  • 多态性:这个和继承就有关了,就是相同的调用,但是涉及的调用对象不同产生的效果就不同(建筑工程师让工人砌墙,他发出的都是砌墙的命令,但是不同的工人所做的动作不完全一致,因为他们砌的不是同一堵墙,所以动作不同)。
  • 继承性:从字面上理解就是继承者拥有被继承者的功能,程序中就是子类与父类的体现。

什么是 MVC ?

MVC 就是一种设计模式,所谓设计模式就是一种设计程序的方法(建筑工程师不同他们采用的建筑方式也不同,MVC 技术程序工程师采用的众多方式中的一种方式,而且是比较流行的方式)。MVC 的有三个核心组件组成 M(Model 模型组件)、V (View 视图组件)、C (Controller 组件),三个组件的联系如下图所示:

MVC 模型图

  • Model(模型)是数据模型以及一切与数据打交道的逻辑动作。
  • View(视图)就是用户看到的界面。
  • Controller(控制器)控制整个程序项目的逻辑路由。

控制器就是一个总的工程师,接受用户请求,给模型发送命令,传回用户生成的界面。