php symfony2 laravel4 比较,LARAVEL4、Phalcon、Symfony2的优缺点?

网上搜了些资料,都是各说各的好,希望了解这些框架的介绍下他们的优缺点,有对比就更好了,谢谢~~

回复内容:

网上搜了些资料,都是各说各的好,希望了解这些框架的介绍下他们的优缺点,有对比就更好了,谢谢~~

正好都用过,推荐symfony2。

首先吐槽下,phalcon 太坑,bug太多,不够稳定,如果要用请一定一定再等3年,等phalcon版本到3.0后再用它,唉,说多了都是泪 :(

如果你是从java过来的那么symfony2绝对不会让你失望,该有的都有,稳定可靠全面,不折腾无意义的事情,不会碰到奇怪的问题,学习曲线陡反倒是优点(symfony除了作为一个框架,更重要的是它有自己的Best Practices,与相对不完善的PSR标准相比更可实践),可以防止新手写出烂代码。

Laravel就是rails的PHP版,相对于rails上手更快,用的人最多,社区力量活跃,rails的那些优秀的东西都有,优雅,新手建议从它入门,laravel底层基于symfony,深入后也可以转学symfony。

thinkPHP特点就是简单粗暴,快速上手,干完一票收工走人的节奏,缺点是不利于中大项目的开发,我有几个朋友初期用tp等项目到一定规模后导致无法维护,不得不推倒重来,苦不堪言。

最后一定要注意框架可以奠定一个项目的基础,以及以后的发展,所以在选择框架时一定要慎重!

sysfony2的社区很活跃,不过它属于重量级的框架了,上手比较慢。

参考资料:github.com/happen-zhang

我觉得laravel和phalcon都可以算上目前比较好的框架了,单从代码优雅度来讲个人觉得最好的肯定是laravel,就像介绍说的那样,for web artisans。

不过laravel和效率感觉有待提高,我从本地测试框架运行速度起码差了太多了,个人更喜欢phalcon,但是由于需要编译扩展,注定用的人肯定不如普通框架多。

laravel和phalcon文档都简单看过,上手速度都比较快。

symfony2不了解,就不评论了

学习symfony2吧还是很不错的,虽然曲线高 但是你学会后不会后悔的

2015最流行PHP开发框架 – SitePoint 调查报告

http://laravelbase.com/posts/32

PHP框架Laravel还是Codeigniter

http://www.zhihu.com/question/21617669

laravel,比如laravel作者写的cms,一个vendor目录就10+MiB,可能cms本身都不足1000KiB~~臃肿又低效

对比了laravel和phalcon,其实就会发现phalcon才是潜力股,尤其是让人兴奋的2.0,真正发布之时,很多非业务级别的代码都可以封装到extension里面,简直帅爆了,效率会更高,而laravel使用composer那个加载效率真是不能忍受。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Phalcon 中文文档 一般都是直接看英文资料,大都能看得懂。但看到Phalcon框架如此优秀,在学习后就想和大家分享,但发现国内的人几乎没有使用的,故想翻译一下,一旦翻译才发现读懂和译出一篇好文章真的不太一样。 故前一期翻译的部分章节有点生硬,等有空的时候再回头重译吧,后面的一部分也是以英文文档为基础,但并不再是逐句翻译了。 09年左右,大量的框架出现,我看过的框架不下20种,最先看到的可能就是php.MVC了,这是一个按照struts 1x编写的,只不过同时加载的类库太多了,效率不高而且不太完善。 后来稍有名的包括 cakephp, Symfony, Akelos, Prado, Kohana等,最近几年流行的就是 zf, yii, ci等,当然还有国内几个比较有名的框架,如fleaphp, thinkphp等。 在上面的一些框架中,我比较感冒的还是ci,yii,thinkphp等。ci,thinkphp够简单,速度也不错。yii是生活在国外的华人开发,功能够全而强大,速度也不错,国内的应用也不少。 一直不太喜欢zf,记得几年前就和同行朋友聊天的时候说,像ZEND公司完全可以用C语言开发出一个扩展来,这样效率会高得多,为毛非得用PHP开发呢,事实被我验证了,但开发扩展的不是ZEND公司,而是国内一个PHP大鸟,人称鸟哥。这个框架就是非常出名的YAF,因此YAF扩展是我必装的扩展之一。同时这也是我发现的第一个C语言写的扩展框架。 但YAF的缺点是,功能非常不完善,在我看来只是简单实现了MVC结构及路由,分发等功能,像一些ORM之类的功能完全没有开发,作者好像也没有开发的意思:) 后来就发现了Phalcon,一看文档就爱上了她,功能,速度等都是我想要的,我花了一周时间看文档学习她,并在一个下午的过程中,发现了文档中的三个错误并提交了这些错误:),我决定为完善它也贡献一点自己的力量。 本文档的中文地址存放在 http://phalcon.5iunix.net Github上的地址为: https://github.com/netstu/phalcondocs ,您如果发现有些地方译的有些操蛋,烦请你fork它,并完善她。
Symfony4 中,你可以使用定时任务组件Symfony\Component\Console\Command\Scheduler来安排定时任务。以下是配置步骤: 1. 安装组件: ``` composer require symfony/console ``` 2. 创建定时任务类,如下所示: ``` namespace App\Command; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; class MyScheduledTaskCommand extends Command { protected static $defaultName = 'my:scheduled:task'; protected function configure() { $this ->setDescription('My scheduled task'); } protected function execute(InputInterface $input, OutputInterface $output) { // Do something here } } ``` 3. 创建定时任务定义类,如下所示: ``` namespace App\Console; use App\Command\MyScheduledTaskCommand; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Exception\SchedulerRuntimeException; use Symfony\Component\Console\Scheduler\Schedule; use Symfony\Component\Console\Scheduler\ScheduleBuilder; use Symfony\Component\Console\Scheduler\SymfonyScheduler; class Scheduler { private $scheduler; public function __construct() { $this->scheduler = new SymfonyScheduler(); } public function schedule(): void { $this->scheduler->addCommand(new MyScheduledTaskCommand()) ->setDescription('My scheduled task') ->setSchedule((new ScheduleBuilder()) ->at('*/5 * * * *') ->getSchedule() ); } public function run(): void { try { $this->scheduler->run(); } catch (SchedulerRuntimeException $e) { // Handle exception here } } } ``` 4. 在services.yaml文件中定义Scheduler服务: ``` services: _defaults: autowire: true autoconfigure: true public: false App\Console\Scheduler: public: true ``` 5. 在控制器或其他地方调用Scheduler服务的schedule()方法,如下所示: ``` namespace App\Controller; use App\Console\Scheduler; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Routing\Annotation\Route; class DefaultController extends AbstractController { /** * @Route("/schedule") */ public function schedule(Scheduler $scheduler) { $scheduler->schedule(); return $this->redirectToRoute('homepage'); } } ``` 6. 在终端中运行以下命令,以启动定时任务: ``` php bin/console schedule:run ``` 以上就是在Symfony4中配置定时任务的步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值