Andy's Blog » » BSMLite非框架又像框架的好东东

BSMLite非框架又像框架的好东东

今天无意中到奶瓶博士的BLOG上看到的,没想到已经到了第13个Alpha版本
从GoogleCode上下载看了一下,感觉还是比较满意的

不愧是PHP快速和规范开发的好工具。有兴趣的可以到此下载
http://code.google.com/p/bsmlite/
下载包中有完整的中文说明文档

奶瓶的BLOG地址
http://conanmusic.spaces.live.com/default.aspx
可惜文章有点少

顺便COPY关于BSMLite的介绍过来,最好是去看下载包中的PDF,你一定会有收获。

BSMLite雪蛇计划
非常有意思的一件事,SnowSnake是我做梦梦到的一个词,呵
BSMLite的结构原型,升级了13个Alpha版本,有了一个基本的样子,我在以我个人的思路左右它的发展方向。
首先声明,BSM不是一个PHP框架,它是一种开发资源服务,或者说我之前一直找不到一个合适的词来形容它到底是个什么。BSMLite是由BSM中衍生出来的一个更紧凑的结构,而且我希望它更紧凑,紧凑到只有一个kernel。
也许是debian的apt包管理对我的影响(我一直在用ubuntu),我很希望把BSMLite做成一种基于网络分发和维护的资源库。其实PEAR本身就带有这种性质,它可以在线install开发者想要的class,但是PEAR只是实现了一个很初级的“下载”、“安装”,并没有提供一个完整的提交标准。某种意义上讲,PEAR做得比cpan要差很多,而且在包的数量上和cpan更是没法比。
BSMLite将包含一个足够小的内核,它由一个原生的bsm.php程序和若干支持程序和函数集组成,以完成一些标准的IO操作,PKG包操作(PKG包是BSMLite的文件打包格式),网络(支持多种数据获取方式,不是简单的file_get_contents),共享内存,一些skel模板,一个基于命令行的安装程序(目前不打算提供web安装)。我正在考虑把BSMTPL移出内核。
BSMLite的组件包括几种:lib、api、module、app。
其中lib是接近于kernel的函数和类包,用于使BSMLite可以完成一些特定的操作,比如提供特定的例如字符串操作、文本数据库操作、hook定义,模板引擎等基础功能。
api是提供对其他应用程序的接口,以提供自身服务或接管一些应用的操作。例如对PHPBB论坛,WordPress博客程序的数据交互,用户共享接口,对自身module的再封装以及和其他BS系程序的交互等。
module是提供功能的核心部分,每一个module提供BSMLite拥有一种功能的一种或多种实现方式,module可以使开发者不必担心很多实现细节,比如数据库封装,cache操作,图象操作,用户验证等各种用途。需要注意的是,module之间有依存关系。
app是实现程度最完整也相对独立的部分,每个app实现了一个流程的所有操作,比如一个blog、一个过滤器、一个收藏夹等。app可以直接潜入到当前应用程序中,从而获得更好的模块化和兼容性保证。
SnowSnake将提供对lib、api、module、app和内核的直接在线支持,可以从源中下载、安装、升级某些部分,或全部更新,PKG是一种特殊的包文件,它将多个文件打包,并记录相关信息,可以由BSMLite的包管理程序直接安装到系统中,也可以从中抽取单独的文件。
BSMLite会使用一个核心数据库,来保存当前的模块信息,包括已安装项目、版本等。目前还在考虑使用何种文件格式,sqlite或者BDB。php本身对BDB的支持并不很好,而BDB提供的扩展又出问题很多,更大的问题是,这种核心功能,不应该使用不常见的php扩展。也许sqlite的支持会被移入内核中,也许我会考虑一个独立的文件数据保存方式,当然我并不觉得xml适合这种场合。
多个版本之后,觉得BSMLite必须有一个足够聪明的安装程序来完成最初的配置。因为它并不像一些框架那样容易使用,只是简单地把文件复制到web目录的某个位置就可以了,BSMLite的手动配置并不简单,而且容易出错。我在考虑是否需要一个基于web的根后台(不是应用程序的后台)。
SnowSnake是一个长期的、宏大的工程,我作为它的发起者和主要维护人,希望可以通过不懈努力,将这件事做得更好

Incoming search terms:

Tags: PHP, 工具, 框架, BSMLite, 开发

本文地址: http://www.21andy.com/new/20080509/1105.html

1 评论 to “PHP开源CMS之MODx”

  1. snow 于 2008-08-21 10:23:29 发表:

    这不就是框架了么?