`
yeaha
  • 浏览: 49801 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

Lysine介绍(一)

    博客分类:
  • php
阅读更多
Lysine是我开发的一个小小的框架,现在已经基本可用,接下来要继续改进就必须实际使用,或者拿出来与人交流。所以我决定开始写这个系列文章说明一下这个东西,兼做文档使用


Lysine的代码库在http://github.com/yeaha/lysine,如果安装了git,可以在shell下运行

git checkout git://github.com/yeaha/lysine.git


和大多数php程序员一样,最开始的时候我不用框架,也搞不懂什么框架,每个页面就是一个php文件,用require/include组织文件,也不知道什么url rewrite


就这么开发了几年之后,开始接触Zend Framework和QeePHP,其中Zend Framework实验性质的写过一些代码,但是由于太巨型,效率达不到我的要求,就放弃使用了,不过里面的代码读了不少,从中学习了不少东西,对框架这个东西的最初理解就来自Zend Framework


有了概念之后再接触QeePHP就轻松很多,一是QeePHP比起ZF要小很多,效率也高一些,二是认识作者,不但可以直接找作者交流,而且后来还获得了直接向代码库提交patch的权限,所以接下来就一直在用QeePHP开发,使用和开发QeePHP的过程让我获得了大量框架方面的知识


随着经验值和项目复杂度、应用成熟度的增加,我开始觉得框架应该越简洁越好,用《UNIX编程艺术》里面的观点来说,胶合层越薄越好


所以现有的QeePHP已经逐渐无法满足我的要求,加之QeePHP新版本开发陷入停顿(作者也需要赚钱养家),我决定自己来写一个东西

除了前面的原因之外,尝试PHP5.3新特性的使用,检验自己过去学到的知识,看看到底自己能够做出什么东西来,也是开发Lysine的目的

我对Lysine的开发原则是:

  1. 越简单越好,只要能够实现80%的功能即可,不追求完美
  2. 只搞定MVC、数据库、缓存即可,求精,不求全
  3. 尽量实现机制而不预定策略,如果预定了策略,应该容易被替换

Lysine的开发过程中借鉴了不少QeePHP里面的想法,毕竟我最熟悉QeePHP,偶尔也读读Yii的代码找灵感,开源的确是很好的方式,我从中获益良多

-----------------------------------------

Lysine介绍(二)载入及配置
Lysine介绍(三)MVC - Application
Lysine介绍(四)MVC - Controller
Lysine介绍(五)MVC - View
Lysine介绍(六)存储服务
分享到:
评论
3 楼 yeaha 2011-06-22  
achun 写道
粗略的把Lysine和Yii做了一下比较
感觉,Lysine在实现上更加突出了php语言本身的特点
Yii则更OOP些,比如 CComponent 作为基类到处可见
Lysine开放的更多,更轻量,class自完备性突出
目前发现Lysine需要改进的地方只有一个
functions.php这个模块没有使用名字空间
很有采用Lysine为基础进行扩展的想法
感谢 yeaha
另外经过我们的讨论明确感觉activerecord 对数据库进行的ORM真的不是一个好的解决方案
理由:
1.使用者总是要了解SQL的方方面面,这点是永远的,谁也解决不了
2.用AR写出来的数据库操作代码量增多了
3.很难通过前台提交灵活的查询条件通用的生成AR操作序列
我那个想法其实也属于DAO层面的,到底结果如何,还是代码说话吧
加油


Lysine里面全部都是面向对象的,那些函数其实大多都是为了少打字而已,比如
app();
// 等于
Lysine\MVC\Application::instance();

所以functions.php里面的函数就没有用名字空间
$page = get('page');
$page = \Lysine\get('page');

像这种经常要用到的函数,少打几个字比较舒服,;)

Lysine里面其实实现过ActiveRecord,后来实在觉得多余,就删除掉了,只保留DataMapper。

顺便对yii放一下厥词,其实我很讨厌CComponent这个设计。继承链搞得太长了,“继承就是一条贼船,上去就不容易下来”。对象之间还是通过接口、消息来协调,多合作,少继承。
2 楼 achun 2011-06-22  
粗略的把Lysine和Yii做了一下比较
感觉,Lysine在实现上更加突出了php语言本身的特点
Yii则更OOP些,比如 CComponent 作为基类到处可见
Lysine开放的更多,更轻量,class自完备性突出
目前发现Lysine需要改进的地方只有一个
functions.php这个模块没有使用名字空间
很有采用Lysine为基础进行扩展的想法
感谢 yeaha
另外经过我们的讨论明确感觉activerecord 对数据库进行的ORM真的不是一个好的解决方案
理由:
1.使用者总是要了解SQL的方方面面,这点是永远的,谁也解决不了
2.用AR写出来的数据库操作代码量增多了
3.很难通过前台提交灵活的查询条件通用的生成AR操作序列
我那个想法其实也属于DAO层面的,到底结果如何,还是代码说话吧
加油
1 楼 skyblue1984 2010-08-21  
发现dualface分支了你这个框架 跟踪而来....

相关推荐

Global site tag (gtag.js) - Google Analytics