PHP企业开发攻略 – 初学者必看

 

前言:

在我读到过的几乎所有文章、书籍或者网络日志中,“PHP不能做企业开发”(或者类似的语言)都被那些所谓的“砖家”放在嘴边。这简直是胡说八道!无耻至极!只有那些光说不练的人有这样的心态!

PHP不仅是Web开发的能手,对于企业开发,同样擅长。

一、学习目标

学习PHP不仅学习的是一门语言,更多的是学习一种编程思想,一种开发模式,从事软件行业的工作人员,如果真正掌握了PHP语言,那么,可以让自己日后的事业发展的更加顺利。

在众多企业开发平台(指Java,.NET)流行的今天,PHP语言以其简洁的语法、众多的厂商支持,成为了企业平台开发的后起之秀,掌握了PHP也就相当于掌握了众多厂商提供的产品,从而为自己今后的事业发展提供了更多的选择。

不仅如此,PHP语言由于体系完整,所以相比较起来,PHP开发人员可以很轻松地转入到手机开发、.NET、Java等语言的开发上,以后也可以更快的跨入到项目管理和项目分析的行列之中。

二、企业开发平台

图例为企业开发平台的组成部分及与PHP技术的对应关系。

2

在企业进行企业开发的过程中,我们可以发现,所有的开发完全是通过中间件来完成程序和数据库之间的操作,因此,在整个企业开发环境下,数据库是一个非常重要的操作,而要想让数据库操作更加合理,就要有很强的程序逻辑和良好的系统设计的能力。

三、PHP与PHP EE间的关系

PHP其实也是一种企业平台的开发技术,包含了很多的技术,使用PHP开发的企业技术,我们可以称之为PHP EE,因此,每个初学者首先必须搞清楚PHP SE和PHP EE 的关系,如图所示。

1

从上图可以清楚的发现,如果要想进行PHP EE的开发,PHP SE是其中必要的组成部分,这也就是为什么在学习PHP EE 之前,初学者必须要有扎实的PHP SE的基础的原因了。

四、PHP SE的核心技术

在PHP SE核心的部分主要有四个,这四个是直接与日后的PHP EE开发有关的。

1、面向过程/面向对象

PHP支持两种模式的开发,一种称为:面向过程的开发,另一种称为:面向对象的开发,在这里我们主要来说一下后者,主要是要求初学者建立好一个面向对象的概念,并可以灵活的运用这些概念进行程序的分析,可以说在整个PHP SE部分核心就是面向对象的开发,里面涉及的概念较多,但是所有的概念最终都是为接口和抽象类服务的,而所有PHP开发中涉及到的各个设计模式,实际上也是针对于接口和抽象类的应用。当然,并不局限于一种方法,在很多情况下,面向过程更高效,快捷。

PHP不是面向对象的专有语言,C++同样也不是,它只是在C语言的基础上增加了面向对象的支持,PHP也一样。相比于Java语言来说,这类语言应该归为混合型语言当中。这也就意味着,PHP可以根据项目或产品的实际需要,选择相应的开发模式。

2、类集框架与标准函数库

大部分的初学者都应该听过或学习过数据结构,虽然从大学就开始学习《数据结构与算法》,但是实际上来讲,学习完后真正可以进行数据结构编写的人并不多,而且大部分的数据结构都是以C语言为基础讲解的,而类集框架就相当于是PHP实现的数据结构,包括树、链表、队列等等,如果只是进行应用层次开发的读者没有必要深入了解其内部的操作,但是必须清楚的掌握其核心的接口和各个操作类。

在PHP中用到的最多的与数据结构有关的结构就那么几个(字符串,数组,以及由基本的数据结构组成的复合结构等)。

PHP提供了大量的函数库,可以根据实际的需要选取相应的函数库,当然,也可以选取一些常用的第三方类库,用以方便实现标准函数库及类集框架不能实现的特殊功能。

3、IO操作

对于大部分的自学者而言,IO操作也许是最容易的了,在PHP中输入输出操作要比其它语言来的更容易,更方便,当然,它也提供了其它一些语言的优点,也提供了面向对象的方法。

4. PHP数据库操作

PHP提供了大量的关于数据库操作的技术,提供了标准的MySQL扩展,以及面向对象的MySQLi扩展;同时也提供了数据库抽象层技术,里面提供了大量的操作接口,各个数据库生产商根据这些接口实现自己的数据库操作,从面向对象的设计上来看,用户完全没有必要考虑其接口是如何实现的,而更多的是关心如何使用这些接口。而且从现在的项目开发中,初学者可以清楚的发现,大部分的开发都是基于数据库的开发。

虽然PHP SE核心是以上四个,但是对于程序开发,每一位初学者应该建立起一些基本的程序思路,对于初学者来讲,应该将PHP SE基础知识点打牢,基本的循环操作要明白,例如:打印正三角形、九九乘法表、冒泡算法等都是一些基本的要求。

而且在学习程序的开发上没有任何的捷径,每一位普通人肯定都需要进行反复的代码熟练才能将代码运用明白,就好象练习武功一样,只有坚持练习,才能让自己的动作收发自如,灵活运用。只有敲熟了,用的时候代码就自然而然的写出来了,所以只有勤学苦练才能牢固的掌握编程语言,世界上或许有程序天才,但是我们自己承认和大部分人一样,都是普通人,都是每一步一个脚印走出来的。

五、企业平台开发架构

在PHP企业开发平台中,有三套开发架构:标准开发架构、开源开发架构、混合开发架构

  • 标准开发架构:就是使用了标准的PHP EE开发技术,使用HTML/XHTML、PHP进行开发。标准架构可以单独使用PHP/HTML/XHTML技术开发,也可以通过Web Service和XML_RPC完成分布式开发,但是此套开发架构的成本较高,所以在现在的开发中开源框架技术也较为常用。
  • 开源开发架构:就是我们经常提到的ZF(zendframework)、CP(cakephp)、CI(codeigniter)等框架技术,这些都只是标准开发技术的衍生产品。
  • 混合开发架构:由于PHP在处理Web流程要比其它语言更简便,你可以对比一下表单的处理就可以看出,所以,经常会那它作为web层,而应用部分使用其他语言开发(比如:Java或.net组件等),这些在一些大型的项目中会经常遇到,它降低了开发难度,提高了开发效率,当然,对人员的水平要求也会随之提高。

六、学习步骤

有时我们经常看到有不少初学者都在问:“我只学过C语言,我能学会PHP吗?”

在这里要说一下,学过C语言的人会发现,学习PHP会非常的简单,因为,它们的语法基本上是相同的,所以,基础方面入门很快。其实,你如果好好看过其他语言书,你应该发现,这些程序语言都是相通的,核心的内容就是关键字、基本控制、数组、方法(函数),函数库;根据不同的平台找不同的方法,所以不要被各个语言所迷惑,也不要觉得难,因为当你自己完全学会了一门语言之后,其他的就都学会了。

通过我们实际的指导学习PHP的过程中,可以参照以下步骤:

1)重点掌握:充分的理解每一个知识点,代码编写熟练

  • PHP的主要作用、特点、开发环境
  • 程序的基本结构、关键字。
  • 各种循环控制、运算符。
  • 字符串的定义、字符串的常用功能、正则表达式的用法,这部分的重点其实就是正则表达式。
  • 数组的定义、数组的两种基本类型、遍历数组、合并数组、字符串与数组的转换、数组的基本操作。
  • 类与对象、类的定义结构、构造方法、private、static、this、::、引用传递、内部类,这部分内容一定要掌握简单类的开发方法。
  • 类的扩展、super、final、抽象类、接口、多态、对象克隆、对象检测、实际分析。
  • 异常的产生原因、标准异常的处理语句格式、try、throw、catch

1、PHP常用的函数库

在学习的时候不要花太多的精力去记住函数的使用方法,关键是要学会如何查询文档,PHP提供的函数太多了,每个人是不可能全部记下来的,用到何种功能大概可以想起来,之后通过文档查询其具体用法就行了,没有一个人可以将所有的函数库都背下来,只需要将常用的灵活掌握即可。例如:日期时间处理函数、正则表达式函数、字符串处理函数、数组处理函数、图像处理函数等。

个人建议:有关数据结构部分的函数还是应该好好复习一下。

2、PHP类集的作用及使用

PHP除了提供了一些标准的函数库之外,还提供一些标准类集框架(也叫标准PHP库),它在5个关键的方面提升了PHP语言,包括:迭代器、异常、数组重载、XML以及文件和数据处理能力。它还提供了另外一些有用的项,例如观测者模式、计数功能、用于对象标识符的辅助函数以及迭代器处理功能。此外,它还提供了用于自动加载类和接口的高级功能。

但这部分在学习的时候不需要花太多的时间,因为在实际的开发过程中,用的时候不是特别多。

个人建议:可以忽略不计,在学习OO的时候再来学习也不迟。

3、PHP IO

面向对象和面向过程的体现,文件处理、Stream Classes、Serializable等

4、MySQL、SQL命令、Statement、PreparedStatement、ResultSet、事务处理。

个人建议:主要掌握查询语句。以及CURD语句。

2)理解掌握内容:掌握其运行的基本效果,具体的代码可以不用全部灵活掌握

表单处理:运行形式、几种实现方式及区别

会话处理:两种机制及实现方式

XML处理:数据交换的方式及读写方式

PHP输入输出缓冲:读取、写入操作

PHP反射机制:重点部分就是在于如何取得Class对象,并且进行对象的实例化操作。

PHP开发工具:开发工具本身不能算是重点,初学者一定要记住:只要程序会编写了,则开发工具也就自然会使了。

PHP SE学习完之后,我建议初学者最好先学一下数据库的相关知识,从整个中国的软件开发来看,Oracle、MySQL、MS SQL Server三个数据库使用较多,但是个人认为,学习MySQL会比较好一些,而且初学者必须记住一点,在PHP的开发中如果使用了MySQL则性能是最高的,故:在此我推荐的就是MySQL数据库,其次、是MS SQL Server;现在有很多人推荐Oracle,不是说Oracle不好,是因为Oracle成才率太低,投资比并不是最佳。另外,初学者也必须清楚一点,我们是程序开发人员,而数据库管理是另一门学科,在学习数据库的时候应该将更多的重点放在SQL语句的编写上。

最后希望每一位初学者都可以学有所成,因为从我个人的学习来看,只要学会了PHP,则.NET或其它一些静态语言都可以很容易的学会,如果你自己本身还喜欢窗口开发的话,也可以学学PHP GTK开发,实际上也都是很容易的,从一点一滴积累,现在就开始努力吧,我们铭家在线会给大家的学习提供最好的资料,最好的帮助。

附记:

其实,上面介绍的学习步骤,其实,我们在其他语言的培训或相应的图书中经常会遇到。它们其实采用的就是语法+案例+API+所谓工程案例的介绍模式,这种讲解模式已经越来越不适合现在软件开发的要求,有关这个话题,我以后会讲到,这里就先埋个地雷。

说了那么多,希望对学习PHP的人有所启发和帮助,也希望你能对我的文章提点宝贵的建议,留言评论最好!

上面这篇文章以前在LAMP兄弟连的杂志中发表过,有删改!

更多的内容参见我的博客:www.ityouku.com

展开阅读全文

初学者必看

10-03

学习编程,从何入手 rn--------------------------------------------------------------------------------rn  如果您想学习编程,却又不知从何入手,那么您不妨看看下面的几种学习方案,可能会给您一些启示吧! rn============================================== rn  方案一 Basic语言 & Visual Basic rn  优点 rn  (1)Basic 简单易学,很容易上手。 rn  (2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。 rn  (3)众多的控件让编程变得象垒积木一样简单。 rn  (4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。 rnrn  缺点 rn  (1)Visual Basic 不是真正的面向对象的开发文具。 rn  (2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。 rn  (3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。 rnrn  综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。 rnrn  Basic/Visual Basic简介 rn============================================== rn  方案二 Pascal语言 & Delphi rnrn  优点 rn  (1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。 rn  (2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。 rn  (3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。 rn  (4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。 rnrn  缺点 rn  Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。 rnrn  综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。 rnrn  Pascal语言简介 rn  Delphi简介 rn============================================== rn  方案三 C语言 & Visual C++ rnrn  优点 rn  (1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。 rn  (2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。 rn  (3)VC是微软制作的产品,与操作系统的结合更加紧密。 rnrn  缺点 rn  对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。 rnrn  综述: VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。 rnrn  C语言简介 rn============================================== rn  方案四 C++语言 & C++ Builder rnrn  优点 rn  (1)C++语言的优点全部得以继承。 rn  (2)完全的可是化。 rn  (3)极强的兼容性,支持OWL、VCL和MFC三大类库。 rn  (4)编译速度非常快。 rnrn  缺点 rn  由于推出的时间太短,关于它的各种资料还不太多。 rnrn   综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。 rnrn  C语言简介 rn============================================== rn  方案五 SQL语言 & Power Builder rnrn  对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。各种各样的控件,功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序。rnrnrn rn 论坛

没有更多推荐了,返回首页