php - 如何深入理解并使用框架?

 mobiledu2502858945 发布于 2022-12-01 10:43

我用了CI和thinkphp,感觉熟悉了框架的组织架构与CRUD语法后,就能拿来完成项目需求了,然后也没感觉到两者之间谁优谁劣在哪个方面?该怎么样才能深入地理解框架?并知晓他们的优势与劣势都表现在哪?

补充:我说的熟悉了框架的大概包括:一些常识与它的各项配置、很多内置核心模块的实现代码、面向对象实现与代码重用,但我仍然没法感受到这个框架设计得好不好?仍然不知道哪块设计得很精妙,哪块实现得很糟糕?甚至用了这两个框架,我连它们一个毛病都找不出来,完全是无感的状态啊。。。苦恼,因为是自学的,在公司开发的系统也不够复杂,或者就是不知怎么样往复杂的方向去设计系统,感觉有点迷茫,学得杂而不精。。。

再补充:其实我感觉是自己对系统架构设计、代码设计这块一点不通的表现(我就把这个当作自己的一次反思过程了,改来改去请多见谅!)

非常真诚地渴望得到指点,望各位赐教!谢谢!

2 个回答
  • 可测试性

    框架里写的代码,能不能被自动化测试,框架与主流的测试框架(如PHPUnit)集成度如何。控制器、模型、类库、功能函数能不能被自动测试。

    可调试性

    开发过程中,如果项目出现了问题,能不能立即定位。

    项目已经上线并允许了一段时间后,出现问题,能不能立即定位到是什么时间,哪儿出的问题。

    扩展性

    不多说了

    可复用性

    不多说,估计你也用不着。我虽然不知道你编了几年的代码了,但是你自问一下,你以前编写的那些代码,现在还有多少留着呢?复用过多少在项目里?

    给你一个建议,把你认为有用的代码,或者你认为将来用的上的代码,拿出来,放到 github 上,自己看,也让别人看。一个月后你会发现你的代码写得有多烂,然后修改,如此反复。

    自定义性

    PHP 的大型框架如 Zend Symfony 都有点儿太 java 了,不适合 PHPer 的胃口。PHPer 的 Level 普遍偏低,也没有大型项目的经验,编程功底也不深,大部分仅仅停留在 CRUD 级别。因此会选择一些同样 Level 的框架,如 CI 和 thinkphp 是首选。

    但当项目到了一定规模,或者 PHPer 有了一定项目经验后,就会发现以前所鄙弃的那些框架里的功能,都是自己需要的,而好多的东东 CI 里面没有提供,因此就需要将第三方模块或者自己开发模块来完成。如果框架不能扩展,不能自定义,就只能换框架了。

    社区

    还有一点儿是最重要的,尤其是对于初学者,那就是社区。初学者遇到问题只能借助百度或者谷歌,还有sf。即使这些框架都是开源的,也很少有初学者通过阅读源码来解决问题的。

    遇到了问题,先百度一下,点开结果,得到一段代码,复制过来,运行,报错,再点开第二条搜索结果,再复制过来 ……

    或者加入QQ群,发言:大神在吗?跪求一段xxxx功能的代码。

    或者去论坛:帮我看看这段代码为什么出错了,在线等。


    了解轮子构造最好的方式就是:自己造个轮子。

    在微博大喊一句(虽然是大喊,不要也要低调):我要开发一个 PHP 的 MVC 框架,先实现几个简单的功能,路由转发,控制器,模型,试图。项目地址为 github xxxxxxxx

    为了不让自己吹的牛破了,默默努力。

    祝你早日成功。

    附我的github地址:https://github.com/justjavac

    2022-12-01 11:31 回答
  • 表示有同样的困惑。
    不过自我总结还是基础知识太薄弱,现在在努力补基础知识。

    2022-12-01 11:31 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有