《Android和PHP开发最佳实践 》一3.4 常用PHP开发框架

简介: 本节书摘来自华章出版社《Android和PHP开发最佳实践 》一书中的第3章,第3.4节,作者 黄隽实,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.4 常用PHP开发框架

随着互联网应用的发展,我们过去依靠原生PHP代码进行编程的路已经走不通了。因为,随着代码逻辑越来越复杂,如果没有一个好的框架来管理和组织代码,乱七八糟的巨量代码最终必将把整个项目毁掉,这也是我们在项目结束之后还要花那么大的资源和精力对代码进行不断优化和重构的原因。当然,如果我们在项目开始时就采用一个比较好的框架进行开发,不仅可以让以后的功能扩充变得更加简单,还可以为日后的代码维护减少工作量。目前市面上流行的PHP框架非常多,接下来我们会对其中比较有代表性的几个框架做一些介绍和对比。

  1. Zend Framework(http://framework.zend.com/
    Zend Framework简称ZF,是PHP的官方框架,优点是功能强大、结构松散、封装完善,很适合作为二次开发的基础框架,它包含了几乎所有你能想到的关于互联网方面的功能类库。当然,ZF的类库包也很大,框架类库就将近20MB,当然其中大部分我们是用不到的。虽然ZF看起来比较“笨重”,但是它所提供给开发者的自由度是其他框架所不能比较的,针对那些需求比较灵活或者结构比较复杂的大型项目而言,ZF确实不失为一个很好的选择。

笔者建议大家去深入学习ZF框架,最好是能把ZF的主要逻辑和类库的代码读一遍,因为从中你不仅可以学到很多PHP语言的编程技巧,还可以学到很多有用的“设计模式”以及“封装”的技巧,这些知识和经验都会对大家今后的编程之路大有裨益。
此外,本书实战篇中的项目实例将会使用一个基于ZF的框架Hush Framework来进行开发,因此学习ZF对大家来说也是非常必要的。当然,由于本书的篇幅限制,我们不可能在这里把ZF全部给大家讲一遍,但是我们在3.6节中在对Hush Framework进行讲解时会涉及ZF框架的一些内容,建议大家认真阅读和体会,相信其中的知识会对深入学习ZF框架有很大帮助。
小贴士:本书的“封装”指的是一种基于面向对象思想的组织代码的方法,后面会多次提到这个概念,大家在阅读时可以注意一下。

  1. CodeIgniter(http://codeigniter.com
    CodeIgniter(CI)也是一个比较老牌的PHP框架,和ZF相反,它非常小巧,核心类库仅有1MB左右,使用起来比较简单,代码框架遵循常见的MVC结构;但是CI的类库封装得还不够精细,某些框架层次感觉设计得过于繁琐;另外,我认为CI的文档做得不是很好,特别是中文的文档,当然这可能是多种原因造成的,但是不可否认的是,这个问题大大阻碍了CI框架在国内的普及。
  2. CakePHP(http://cakephp.org/
    CakePHP是一个典型的仿RoR类型的框架,它的脚手架(scaffold)功能还不错,也非常的小巧,类库相对来说设计得主流化一点,但是模板支持部分还做得不够好,另外系统设计的耦合度比较高,如果遇到一些大型项目会有点棘手,比如需要分库分表,以CakePHP目前的做法会比较麻烦。
  3. ThinkPHP(http://www.thinkphp.cn/
    ThinkPHP是必须要介绍的,是近几年出现的比较优秀的产品之一。整体来说,ThinkPHP很快,几乎是所有PHP框架中最快的;也很小巧,所有的类包加起来才几百KB;在设计方面相对比较松散,易于学习;另外,文档也相当完善,确实是近年来出现的一个不错的PHP框架,但是面对大型项目同样有一些不方便的地方。

当然,面对如此多的PHP框架,到底应该学习哪一个呢?我们可以这样考虑:如果你只想快速地开发出一个应用,那么可以选择Think、Cake或者CI等敏捷型的开发框架;但是,如果你想要更深入地学习PHP语言,甚至PHP中的各种设计模式,请选择ZF。当然,在后面的章节中,我们将会向大家介绍一个基于ZF和Smarty的PHP开发框架,也就是Hush Framework。

相关文章
|
8月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1557 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
8月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1074 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
8月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1152 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
9月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
902 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
8月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
404 0
|
9月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
1267 6
|
11月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
682 11
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
5267 77
|
11月前
|
移动开发 Java 编译器
Kotlin与Jetpack Compose:Android开发生态的演进与架构思考
本文从资深Android工程师视角深入分析Kotlin与Jetpack Compose在Android系统中的技术定位。Kotlin通过空安全、协程等特性解决了Java在移动开发中的痛点,成为Android官方首选语言。Jetpack Compose则引入声明式UI范式,通过重组机制实现高效UI更新。两者结合不仅提升开发效率,更为跨平台战略和现代架构模式提供技术基础,代表了Android开发生态的根本性演进。
473 0
|
安全 Java Android开发
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
496 0
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡