求推荐,适合小项目用的【轻量级】的PHP开发框架。
- 内部工具使用,不希望框架太复杂文件太大;
- PHP 版本 5.3+,所以可以不需要为了兼容 PHP4 而做妥协;
- 不需要太复杂的 DB 封装,甚至直接用 PDO 都可以接受;
- 有基本的框架功能,路由,参数过滤,表单验证等;
追加一点:我希望框架够简洁,PHP文件和类在 100 个以内
回复内容:
使用场景:
- 内部工具使用,不希望框架太复杂文件太大;
- PHP 版本 5.3+,所以可以不需要为了兼容 PHP4 而做妥协;
- 不需要太复杂的 DB 封装,甚至直接用 PDO 都可以接受;
- 有基本的框架功能,路由,参数过滤,表单验证等;
追加一点:我希望框架够简洁,PHP文件和类在 100 个以内
一直使用 CodeIgniter,后来偶然的机会接触了后起之秀 —— Laravel 框架。
1. 表现力
你知道下面这行代码里 true
代表什么意思么?
$uri = Uri::create('some/uri', array(), array(), true);
另外,你知道其他参数在这里的意思么(除了第一个)?当然你不知道。因为这行代码没有表现力。 表现力 (形容词): 有效地表达的思想或意思 再看看这段代码:
$url = URL::to_secure('some/uri');
这个表达式使用 HTTPS 协议创建了一条 URL 链接, 事实上,上面两种写法都在做同样的事情,但那一个更一目了然,更富有表现力呢?
富有表现力的代码(具备自描述特征)—-意味着可维护的代码
2. 简单性
事实上,Web(互联网)的本质是是很简单的。它是只是请求–响应。 在我构建实现 Laravel 时,我多次这样告诉自己。我只想用简单方式实现–捕获请求并发送响应。
Route::get('home', function() { return View::make('home.index'); });
当然,我们还需要实现其他功能,如验证、 分页等。所有这一切在 Laravel 中都实现的更简单,没有让人抓狂的的配置文件。想要进行用户信息分页显示时预加载用户发布的文章么?没问题:
$users = User::with('posts')->paginate();
echo $users->links();
请注意上面代码的简单直接。你不必告诉 Laravel 当前你在操作什么页面,和你没有创建一些可笑的分页的配置文件。
文章来源:为什么选择 Laravel?
第一个PHP项目使用cakephp,后来完全不用框架手写了几年,再后来,由公用部分代码逐渐抽象出一个路由控制文件外加几个常用类库文件,模版和代码分离,就是我们现在的开发框架,底层的东西如果出了问题将是致命的,所以如果不是钻研框架,自己要快速开发产品,需要一个属于自己的框架,可以清楚每一行代码是否会带来问题以及是否会影响性能,基本上每一种框架都有自己的适应场景,我们的框架对我们的产品来说就很合适,给别人就无法使用,推荐你还是自己写一个吧,其实也不难,可以根据LazyPHP改造一下。
推荐 ColaPHP,绝对轻量级,编码风格也很喜欢,作者近期已更新到 2.0RC 版。
https://github.com/fuchaoqun/colaphp
关于性能测试,给个对比测试给你看。
http://www.ruilog.com/blog/view/b6f0e42cf705.html
http://www.slimframework.com/
Slim is a PHP micro framework that helps you quickly write simple yet powerful web applications and APIs.
get('/hello/:name', function ($name) {
echo "Hello, $name";
});
$app->run();
FEATURES
- Powerful router
- Standard and custom HTTP methods
- Route parameters with wildcards and conditions
- Route redirect, halt, and pass
- Route middleware
- Template rendering with custom views
- Flash messages
- Secure cookies with AES-256 encryption
- HTTP caching
- Logging with custom log writers
- Error handling and debugging
- Middleware and hook architecture
- Simple configuration
SYSTEM REQUIREMENTS
PHP 5.3.0 or newer
可以试试CI(codeigniter ),文档齐全,开发又够简单快速,适何中小项目
用户手册目录:http://codeigniter.org.cn/user_guide/toc.html
推荐 initPHP 框架,是我目前来说见过相对比较好比较高效的国产PHP框架了。
其扩展开发以及使用都很简单,上手也很快。
有兴趣可以看看: http://www.initphp.com/1_1.htm
===========================================
pdo 目前 我也提供了封装好的! 到时候可以提供上去。
FatFree我见过最小的PHP框架了
LazyPHP
轻框架。包含一个前端控制器,20个常用函数和用于页面布局的Layout系统,10分钟即可学会。LP采用BSD开源协议,在代码内保留框架名即可随意商用。
https://github.com/easychen/LazyPHP
Laravel +1 不过是挺大的。 LazyPHP 可能是你想要的。
canphp,doitphp这俩个也不错。
xiunophp (xiunobbs的衍生品所以框架性能可以试试xiunobbs)高负载应用的 PHP 开发框架,共只有34个文件, 封装了各种DB(MySQL、MongoDB...), CACHE(Memcached、TTServer、Redis...),良好支持了NoSQL。
Flourish, PHP Unframework
不是严格意义上的框架,但是提供了诸如ORM类的功能。
继续捣乱》 来个国产 https://github.com/hfcorriez/pagon
话说没用过框架,不过今天看到有位大神的博客说禅道框架才4个文件,给吓到了,就去看了下,还真是。 单纯是为了说人家的文件少而拿过来推荐的,具体性能什么的就不清楚了。
禅道PHP框架:http://devel.zentao.net/
更新:今天又看到个框架,文件数大概是在40左右的样子,最重要的是...这是我第一个运行成功的例子(就测试了一下MVC的C)..(原谅我是新手)...废话少说,继续放上地址:
fatfree: https://github.com/bcosca/fatfree
speedphp,小而轻,上手很容易,支持sae哦!
怎么没人推荐thinkPHP呢? 当初我在只有一点ASP、html、css的基础的前提下接触thinkphp,很短时间内就弄了个《艺客网》(酷站展示的,相对比较简单,现在换wordpress了)。所以我觉得,相对轻量级的,容易上手的,应该还是值得了解一下的。 留个链接吧。http://www.thinkphp.cn/
makoframework
http://makoframework.com/
推荐ci和thinkphp框架,ci做小项目还算灵活,和thinkphp框架相比,扩展性没有thinkphp好一些.另这两个框架对于新手特别的适合,上手非常的快的.
怎么都不用zend framework呢? 配上eAccelerator之类的加速,性能完全是能接受的
一直在用zf配合Propel ORM做网站
Silex
基于Symfony2的,以后想搞复杂的,直接上Symfony就可以了
Symfony2 需要php5.3+,项目是php5+的...有种淡淡的忧伤
用了几个 还是codeignitor最轻最喜欢。
现在是用自己写的框架, 你说的那些功能都很容易实现, 只要你稍微看过框架的代码, 而且你不要考虑兼容其他后台的运行环境, 没有额外的代码负担, 代码速度效率也快, 我的mysql class用的是meekro.com的, 基本的框架功能,路由,参数过滤,表单验证 只用了简单的两个文件, 加上meekro的就三个文件, 一切尽在掌握。
用下thinkphp,国产文档齐全,交流方便,学习比较简单吧
使用过 CI 和 ThinkPHP,个人比较倾向于 CI 。
轻量级的最好自己写一个。适合自己项目最好的才是最好的。
我了个擦,一下蹦出这么多框架
根据楼主的需求,我推荐一个:TinyMVC 。麻雀虽小,五脏俱全
我自己搞的一个小项目现在差不多了,用的是symfony2,有兴趣可以研究一下
推荐一个100行的Router库做路由控制器 https://github.com/lloydzhou/router,可以根据映射的handler自动从request获取变量,支持自定义error handler和hook。可以通过hook方便的定制参数过滤、登录检查等。
(new Router())
->error(405, function($message){
header('Location: /hello/world', true, 302);
})
->get('/hello/:name', function($name){
echo "Hello $name !!!";
})
->execute();
上一篇: php实现图片上传时添加文字和图片水印技巧,_PHP教程
下一篇: 参数确实是true,但是还是有警告mysql_fetch_row() expects parameter 1 to be resource?
推荐阅读
-
微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记4)支持React.js语法的Taro框架
-
求推荐一款适合团队开发的PHP,IDE,能集成SVN!
-
一个项目,涉及很多mysql的查询操作,用框架开发api好?还是用原生php开发api好?
-
求推荐,适合小项目用的【轻量级】的PHP开发框架。
-
求推荐!PHP生手做项目最合适的开发工具
-
求推荐!PHP新手做项目最合适的开发工具
-
求推荐!PHP新手做项目最合适的开发工具
-
一个项目,涉及很多mysql的查询操作,用框架开发api好?还是用原生php开发api好?
-
微信小程序项目开发实战:用WePY、mpvue、Taro打造高效的小程序》(笔记4)支持React.js语法的Taro框架
-
有哪些适合高并发、高流量、高性能网站开发的 PHP 框架推荐?