0

0

开发经验 - PHP 求使用框架开发的一些经验

php中文网

php中文网

发布时间:2016-06-06 20:20:43

|

1424人浏览过

|

来源于php中文网

原创

看完了scholer的《现在写 php,你应该知道这些》,才清楚开发中,工作使用的框架和自己喜欢的框架时可以区分开的。因为我之前用框架开发,数据库设计,后台,前台,每次一个新项目的开始都要重新做一次数据库设计,网页的页面,开发周期长,老板觉得这样不好,说需要开发一个cms,提高程序的重用性。目前选择框架时,我担心的是:

  1. 客人的服务器版本可能还是使用5.3.x版本

  2. 假如客人服务器版本是PHP5.3.X,用yii2或者Laravel 4.2 开发的项目,在客人的服务器中不能使用

目前我在Yii2和Laravel 4.2这两个框架之间徘徊,因为这两个要求的PHP版本都是5.4 或者之上,所以我自己不敢实打实的去学习其中的一个框架。Thinkphp目前考虑以后不再使用,因为这是我目前使用的,只是想跳出TP。

因为我目前只清楚数据库的RBAC,USER表的设计,后台的RBAC是可以重用的,相应的功能,我要根据项目的实际功能进行重新code一次。

立即学习PHP免费学习笔记(深入)”;

希望有朋友可以告诉我一些开发的建议,在使用框架时,我应如何提高程序的重用性,避免一个新的项目开始,数据库设计,后台,前台都减少相应的重复操作。

第一次提问,废话有点多,还请你不吝赐教。

回复内容:

看完了scholer的《现在写 php,你应该知道这些》,才清楚开发中,工作使用的框架和自己喜欢的框架时可以区分开的。因为我之前用框架开发,数据库设计,后台,前台,每次一个新项目的开始都要重新做一次数据库设计,网页的页面,开发周期长,老板觉得这样不好,说需要开发一个cms,提高程序的重用性。目前选择框架时,我担心的是:

  1. 客人的服务器版本可能还是使用5.3.x版本

  2. 假如客人服务器版本是PHP5.3.X,用yii2或者Laravel 4.2 开发的项目,在客人的服务器中不能使用

目前我在Yii2和Laravel 4.2这两个框架之间徘徊,因为这两个要求的PHP版本都是5.4 或者之上,所以我自己不敢实打实的去学习其中的一个框架。Thinkphp目前考虑以后不再使用,因为这是我目前使用的,只是想跳出TP。

因为我目前只清楚数据库的RBAC,USER表的设计,后台的RBAC是可以重用的,相应的功能,我要根据项目的实际功能进行重新code一次。

立即学习PHP免费学习笔记(深入)”;

希望有朋友可以告诉我一些开发的建议,在使用框架时,我应如何提高程序的重用性,避免一个新的项目开始,数据库设计,后台,前台都减少相应的重复操作。

第一次提问,废话有点多,还请你不吝赐教。

怎么说呢…… 其实当时写这个 是跟一个朋友讨论问题,他问我能不能把一些东西组件化、热拔插这种,我说可以啊…… 试试composer…… 很偶然很偶然,我弄这么个标题纯属无意……但是这种标题似乎都带有些爆炸性……

其实我的初衷是想说明一件事情:PHP 在变化,可以选择的也多,不要还拿 wordpress、或者某些基于 PHP4 时代的框架的眼光来看待。

之前很多人都看过 phptherightway,也有人翻译过《Modern PHP》这本书,其实我的观点和作者是一致的:PHP 在变化,从事这一行,是否你也考虑一下改变自己?

就像我们以前常用 PHPMailer 来发邮件,现在 很多框架里集成的 却是 swiftmailer。如果你用过 Laravel,不防研究一下 vendor 下的每个依赖项目?每个依赖项目的作者还做过什么别的有意思的东西?

当然我这么讲,也是因为我自己也会搞搞服务器上的事情,所以一直也不在乎客户提供什么,因为这些我都可控,在乎的都是我想要做什么。

去日租网站系统
去日租网站系统

去日租程序是一款具有强大的功能的基于.NET+SQL2000+AJAX构架的房屋出租管理系统。 日租网站管理系统,采用ASP.NET2.0语言开发,它集成租房模块、文章模块、订单模块、邮箱短信模块、用户模板、SEO优化模块、房间模块、支付模块等多项强大功能。系统有多年经验的高级工程师采用三层架构开发,页面代码全部采用DIV+CSS,完全符合SEO标准,有利于搜索引擎关键排名优化。日租网站

下载

我想做什么,这也是我选择什么、喜欢什么的原因。这是一份工作,但不仅仅是完成任务,我可以有自己的喜好,自己的选择,也能从中获得乐趣。所以我倾向于多了解,选择最合适的。这个『合适』包括项目成熟度、易用程度、学习成本、维护周期等等。

上面这些是在扯背景,再说下你的问题吧。

重用

composer 无疑就是重用和借助开源的力量简化一些繁复的工作的手段。这个理念跟 pip、npm 没什么分别。只是概念提出来的比较晚(大概 11年 还是 12 年?),所以现在还没那么高的知名度。开发一些组件,放到公有和私有仓库,composer 和 psr4 帮你解决加载的问题,这不是很好的重用吗?

框架选择

laravel 和 yii2 本质上有很多相同,但是设计理念上缺又有非常大的不同,你也可以看看别的一些框架,symfony,phalcon 等等。接触一个新的东西总是会遇到挑战的,有成本的,主要还是考虑项目类型(是页面为主还是 API?和前端的配合等等),怎么选择?看收益。如果你看不懂长远的收益,没法做出选择的。

数据库设计

数据库设计其实本身是个和 PHP 和框架都无关的问题。如果说扯上关系,不防从两个方面来想:

  1. 预置的数据表/数据关系

  2. ORM 或者 Model 操作方式

这个问题讲大了可以扯到设计理念、代码组织方式之类的,扯小一点就是:能不能快速上手。

实际开发中,哪怕是设计一个登录注册的模块,对于某些开发人员来说可能都要很久(有的人也许擅长实现、但并不擅长设计)。所以选择一些预置了某些基本数据关系的框架可能会容易一点。

至于 ORM 和 Model 这一块,简单的例子,Eloquent 的操作方式和 CodeIgniter 肯定是不同的。光是概念都有很多:Active Record、data mapper、DAO(创造概念来描述自己的想法这件事情产生的自豪感也许比内容本身更大)。你要么不用框架,要么造个轮子,要么乖乖的按照框架的思维模式来,因为框架总免不了有一堆集成工具的组合(或者说是最佳实践)。

后台、前台

这个问题其实和前面一段差不多,你大概知道 yii2 有一个什么 advanced 版本,帮你分一下 frontend、backend 之类的。这个事情做起来困难吗?不困难。但重要的是什么?一个概念、或者叫一个设计吧,还是那句话:有些开发人员擅长实现,但并不擅长设计。后台前台的分离,是搭两套框架,还是一套框架里套两个不同的 app 目录,还是自己设计一个基于 URI 或者域名区分的,事情的本身并不重要。重要的是实现成本。

其实讲了这么多,我想表述的是什么呢?就是要有自己的『观点』、『调研』、『喜好』。然后能尝试动手『实践』。工程师不是机器,有自己的喜好才是正常。喜好和工作并不冲突,就像业务和技术并不冲突一样。想办法把自己的想法和喜好付诸实践,用技术带动业务才是吾辈应该做的事情。

再多扯一点。

PHP 不像前端,现在搞得貌似是蓬勃生机,欣欣向荣,有那么多流派。但 PHP 也并没有沉沦,也一直都有传统观点:能干活就行,现代一点的观点:Composer、PSR,甚至像 symfony 路由都已经写到注释里去了,再高端一点的:C 扩展,PHP 是个架子(此类大神也许对前面的多有不屑)。这本身也是多样化、灵活性的一种表现。

PHP 不是最好的语言,甚至谈不上是好的语言,但好在无数业界前辈(比如鸟哥,比如 nikic,PHP 核心开发,也创造了 FastRoute、PHP-Parser 这些优秀的组件)正努力让它变好,尝试他们的劳动成果也是一种贡献,也许最终你我都会是受益者。

为啥不再使用Thinkphp,想跳出tp 给后面掉坑的人也指条明路

OneThink不就是基于ThinkPHP现成的后台吗?第三方的还有ThinkCMFX, CoreThink, ShuipFCMS这些.

我觉得你这两个担心完全时多余的,你大可正常使用这两个框架开发,如果部署时真是客户的 PHP 只能时 5.3 的,大不了你根据出现的问题,修改这些框架的源码(都是开源的,没有后顾之忧),进行 5.3 的适配即可。5.3 到 5.4 的改动并不算多,轻轻松松可以完成适配。

另外:
ThinkPHP确实存在一些弊端,你早点离开并不是件坏事。我认为ThinkPHP最大的隐患就是没有支持Psr4的规则,导致基本很难引入体系外的第三方库。这也就是框架之间程序很难复用的原因。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.6万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 7万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号