simple 框架(github)是一款简单、高效、易用的 PHP 开发框架。
基于上述逻辑,整理下一个框架所需要实现的功能,及所有功能所需要的积累。
我认为作为一个后端底层框架,只需要为开发者提供最核心最常用的功能即可,其中包括:
composer 是 PHP 用来管理依赖( dependency )关系的工具。可以在自己的项目中声明所依赖的外部工具库( libraries ),Composer 会安装这些依赖的库文件。
基于 composer 开发的代码,可以让使用房快速加入自己的项目中,且可以很好的管理需要使用的版本。另外框架约定好按 PSR-4 规范后开始开发,可以省去了 autoload 的工作量(当然是有代价的,曽压测过使用 composer 的 autoload 和自己实现 autoload 的性能大概相差 15%,但是当项目足够大,需要依赖的外部资源足够多时,这个差距会逐渐的缩小)。
保证框架运行过程中的健壮性,当框架捕获到相关异常,允许用户自定义异常处理方法,可以快速开发出满足自己业务逻辑的功能模块(例如快速实现 404/500/异常上报等功能),以及调试模式下快速定位问题。
用于快速读取配置文件,通过定义的预定义常量自动读取对应环境的配置。
route 即路由机制,通过 url 匹配一段规则后,找到对应处理的类和函数。 MVC 为模型-视图-控制器模式,用一种业务逻辑、数据、界面显示分离的方法组织代码,已经成为 web 开发的必会标准模式。
深入了解 HTTP 协议的 request 和response
选用 mysqli 或 pdo 实现 DB 的基本 query/fetch/insert_id 等操作。 在此基础上,实现 SQL 语句的快捷构造封装 SQL builder (将数组生成对应 SQL 语句)。 在此基础上,实现 ORM (对象-关系映射)的基本封装
在日常的开发工作中,定时脚本任务的开发必不可少,因为便捷的开发基于 CLI 模式运行的脚本也是必须要满足的条件。
Log 用于调试开发等方便打印日志输出。 日常工作中经常需要发送一些 http 请求到特定服务器,或从某服务器拉取相关数据,curl 使用率非常频繁。 在提供纯接口 server 时,对 ip 段限制的需求会经常遇到。 redis 发展到今天,无论是做缓存,还是作为稳定可靠的 DB 提供服务都毫无问题。
目前 simple 框架不断优化、调整,已经迭代至 4.0 版本,有了近两年时间的思考和积累,某些代码的实现确实需要改进,因此有了 5.0 版本的规划和思考。准备将 5.0 版本开发过程中的一系列问题一一记录在案,并对 route、DB build、curl 等一些类库的封装思路进行详细的说明。
我也希望能有认同我观点的朋友参与进来一同思考、讨论、开发,也希望有不同观点的朋友能提出各种批评或者建议,让我们共同探讨技术,一同进步。
欢迎各种吐槽。 原文地址
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.