[转]开源的 PHP 轻量级框架 iphp

ideawu 2014-11-09 11:18:52
对于 PHP Web 开发来说, 框架很重要, 但其实框架又不重要. 说重要, 是因为确实需要一个框架来建立一套规范, 对文件组织, 类和方法的编写, 数据库操作等进行引导. 说不重要, 是因为对于 PHP 开发, 没有哪一个框架最必须的, 不是框架不给力, 而是 PHP 的世界从来就没有呼唤这样的框架的出现.

在 PHP 框架既重要又不重要的事实面前, 所有的 PHP 框架必须是轻量级的, 如果一个 PHP 框架非常重, 那么它肯定没有前途, 不是流行不起来, 就是流行很短暂便沉寂.

我建议每一个团队都开发自己的 PHP 框架, 简单就好. 最好是那种 3 天就开发出来的框架, 而不是那种憋了一年半载才勉强做出来奇怪且复杂的框架. 这种框架必须是透明的, 即使是新手也能一眼看穿框架的核心. 如果做不到的话, 我建议还是换人(没错, 这种情况下人应该被换掉).

对于 PHP 框架, 我有一些要求:

1. 不能做太多事

PHP 框架不要总想做所有事, 缓存系统不需要框架来做, Session 管理也不需要, 存储层封装不要太过度以至搞出各种恶心的 ORM, ActiveRecord 之类的无用功能. 这些功能和模块, 应该独立于框架, 采用成熟的技术.

2. 不要"创造"所谓的模板语言

PHP 语言本身就是模板语言, PHP 做模板语言对于 PHP Web 来说是最完美的, 可维护性和培训成本最佳的语言, 只需要再多说一两句话规范即可: 仅使用 echo 及允许的帮助 echo 的函数, 和 if/for/while. 我十年前不认同 smarty 这类模板工具的意义, 十年后也不认可这类毫无意义的寄生于 PHP 的工具.

3. 使用 PHP 框架的最佳状态是忘掉框架

框架要足够简便, 功能恰到好处, 没有不必要的限制, 这样在使用的过程中才能让人忘掉框架的存在, 以便能将精力放在业务本身. 当需要开发一个功能时, 程序员想的不应该是"框架能不能做", 而是"我能不能做".

4. 最后

我自己也开发了一个轻量级的 PHP 框架, 命名为 iphp. iphp 非常简便和轻量, 全部有效代码不过一千行. iphp 只解决 Web 开发中最重要的问题: 代码组织, URL路由和URL生成.

这个框架用来开发了 SSDB 数据库的图形化界面管理工具 phpssdbadmin(开源项目). 如果你去看 phpssdbadmin 你就会发现, iphp 做到了前面的要求, phpssdbadmin 的用处几乎都没有注意到 PHP 框架的存在.

相关链接:
项目主页: https://github.com/ideawu/iphp
iphp 框架入门
iphp 框架如何生成 URL?

原文链接: http://www.ideawu.net/blog/archives/828.html
...全文
1659 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
哈哈gogo 2014-12-16
  • 打赏
  • 举报
回复
我也不用smarty,
ghostwuboy 2014-12-16
  • 打赏
  • 举报
回复
大概看了下源码: 1,写一个框架,不要做php版本判断,每个版本的下基本的如引号是否开启,短标签,文件属性。。。之类的? 2,各种,未定义的变量 3,tools目录下new_app.php,最后一个目录遍历函数 function scan_dir($dir, $base=false){ if($base === false){ $base = $dir; } $files = scandir($dir); $tmp = array(); foreach($files as $f){ if($f == '.' || $f == '..'){ continue; } if(strpos($f, '.') === 0){ continue; } $f = $dir . '/' . $f; $tmp[] = ltrim(substr($f, strlen($base)), '/'); if(is_dir($f)){ $subs = scan_dir($f, $base); $tmp = array_merge($tmp, $subs); } } return $tmp; } 这能遍历出文件吗? 肯定死循环
U雅de凋0 2014-12-16
  • 打赏
  • 举报
回复
框架功能多不是错误,做成可插拔的共使用者选择使用不好了
司码君 2014-12-15
  • 打赏
  • 举报
回复
ORM, ActiveRecord 之类的无用功能??表示醉了
xuzuning 2014-11-11
  • 打赏
  • 举报
回复
连自带的 demo 都无法运行 显然是个垃圾
狄默默斯基 2014-11-11
  • 打赏
  • 举报
回复
支持一下。。。。。
李睿_Lee 2014-11-09
  • 打赏
  • 举报
回复
已Star。 有空学习一下。

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧