PHP框架与否(Cake PHP)

Gra*_*avy 8 php mysql wordpress pdo cakephp

在大学,我的最后一年项目是基于MVC的c#web应用程序.

我的PHP不强,我希望提高我的PHP编程技能,并期待使用PHP mysql构建一个Web应用程序.

现在为什么我提到ASP.NET MVC?好吧,因为我非常喜欢开发环境,编程的OOP性质和"正确"编程的能力.我也喜欢MVC的编程方法.

现在我的问题是..对于一个相对复杂的Web应用程序,我应该使用像Cake PHP这样的框架吗?

我的特定Web应用程序将执行以下操作:报价引擎,XML,RSS订阅源,用户帐户,购物篮,以后存储报价,查看以前的交易,在线商店管理等...

我希望建立的网站每天最多可以获得4000次点击,并将整合到wordpress插件中.

使用框架而不仅仅是硬编码有什么好处?是不是学习像学习新编程语言这样的框架?

GTo*_*rov 14

最近我和Cake一起工作,并没有给我留下太深刻的印象.这不是你最好的选择.建议您可以尝试Yii框架.写得很好.关于CakePHP我认为我最近写的评论应该详细回答你的所有问题:

快速和简短 - 这取决于!

而答案很长......

如果您需要快速的Web开发过程,那么可以使用框架.

如果您需要快速执行的网站,并且您期望大量的数据库调用和复杂的关系数据库查询,那么答案是否定的!

许多人对不同的框架印象深刻,但实际上他们甚至不知道这些框架的代码是做什么的...而且要证明我不仅仅是点击键盘,因为我不喜欢某些框架或者我只是一个框架仇恨我会给你一些关于表现不佳的CakePHP的事实!:)

我喜欢测试和崩溃网络应用程序.通常这会让我的一天......这就是我的工作!这就是我爱它的原因!

关于我们的蛋糕烤箱的一些信息

我的个人环境:

本地网络服务器:四核第二代i7-2730QM,16GB 1333MHz,7500rpm hdd不是这个问题那么多......,默认Apache 2.2,PHP 5.3,MySQL 5,正确索引数据库.

生产:专用刀片服务器*可扩展的云 - 顶级提供商.Nginx,PHP 5.3,MySQL 5,缓存服务器

*只有原始PHP加载的网站以毫秒或纳秒为单位.

仅供参考我的CakePHP网站有40多个模型和非常复杂的关系.索引的MySQL数据库表.使用最新的Fiddler 2作为基准工具在Firefox中工作.

我最近使用CakePHP来构建企业网站.我最近能够在所有矿井环境中进行测试,从默认CakePHP安装的基本默认生成页面开始.我的本地Web服务器上的负载是4.5秒生产4.5秒,这只是Cake安装后的默认页面?!

结果是在调整蛋糕之前(假设烘焙第一个蛋糕的人知道如何正确处理成分并假设应用程序将运行得快!我怀疑.)!

主调:

这对我有用并经过测试:缓存:当前CakePHP 2.1支持File,ApcCache,WinCache,XCacheEngine,MemcacheEngine和RedisEngine.无论您选择哪一种,大概的速度增加都是从100%到180%.(我们不使用Cake的缓存选项,我们运行自己的缓存服务器)在我们的情况下220%!将Debug设置为0 - 要使Cake引擎运行,需要生成2个缓存文件夹.第一个是/ tmp/cache/persistent - 这里有两个不同的文件,当你运行你的应用程序时,Cake会使用它们.

减慢Cake生成速度的是cake_core_file_map.此文件在您的应用程序中存储各种类.为了构建文件,Cake会对您的目录树进行逻辑且耗时的搜索,以查找正确的文件.

第二个高速缓存文件夹是/ tmp/cache/models此文件夹将包含系统包含表模式的每个模型的所有文件.

Debug为0时有什么区别?当Debug为1或更大时,缓存生存期为10秒.当Debug设置为0时,缓存生存期为999天.烘焙蛋糕的速度增加近似为80%至100%.持久模型 - 打开"var $ persistModel = true"将在/ tmp/cache/persistent中为控制器中包含的每个模型生成两个新文件.一个是对象的cahce,另一个是ClassRegistry中模型的缓存.此缓存只能保存在文件系统中.约.速度从0%增加到200%.取决于您的应用和型号的数量.

其他提示和技巧:避免使用$ uses,因为会产生额外的循环并点击ClassRegistry.这通常是错的!Cookie默认是加密的,而密码加密方法非常慢.如果您没有存储任何敏感数据,请关闭加密.性能提升0%至15%.无论如何都要使用GZIP压缩(将压缩输出高达90%)!如果您正在使用任何FRAMEWORK,请使用PHP 5 +构建的VERSION!关于CakePHP的文档比几年前提供的文档好很多.CakePHP变慢的原因主要是开发人员使用不当的代码.但是如果你真的不知道Cake是如何工作的,开发应用程序并不容易.

我一直在阅读很多评论,其中一些函数在Cake中不起作用.CakePHP中的所有功能都按其烹饪书中的说明进行操作,因此请仔细阅读.有些人没有得到很好的解释或详细解释(这就是为什么它不适合初学者),但问题并没有什么坏处!有时某些功能必须以正确的顺序使用,否则您的应用程序将崩溃或不会返回所需的结果.牢记模型以及不同的类和功能如何工作!

似乎人们不时编写这些代码并不知道他们在谈论什么.例如,使用Cake的数组排序功能从数据库中排序数组而不是MySQL排序功能,只是因为它很酷?真的吗?这是在Cake的文档中写的.

哦,谈到数据库......我们正在使用带有Cake的ADODB,这使得事情变得有点慢.但ADODB讨论的是另一篇文章.只是另一种速度牺牲,但我们始终致力于跨平台兼容性!

整个Cake使用很多数组并生成并依赖于许多复杂的模型.我发现的一些其他错误是在代码中使用比另一个更慢的函数和方法.但我很清楚,找到别人的错误比你自己更容易!

谈到时间发展,在CakePHP的繁重开发过程中,您可能会遇到一些不容易做的事情,并且最终可能会花费大量时间来找到解决方法.

总的来说,如果我有一个非常复杂的项目,我通常会做,我不能轻易找到或建立所需的功能来做蛋糕中的复杂工作或浪费几天在墙上砸我的头,然后我不知道是否烤蛋糕是值得的!在调整Cake之后,速度接近我们其他应用程序的速度.但经过几天的负载测试似乎网络应用程序正在坚持,但仍然在几千名访客的压力下弯曲.通过7.5K独立访客后,我很快就会发现超载!

我会说Cake适用于高级或中级开发人员.如果我刚刚开始我的网络开发生涯,我就不会使用Cake.对于中小型项目来说,没关系或建立行政委员会(这太棒了!).对于具有严重流量负载的大型项目,除非您想在服务器上花费大量资金来为您的应用程序提供服务,我不会选择任何框架,但只是裸PHP(可能是Smarty - 这是为性能而制作的) )!请记住,有不断的硬件和软件更新和升级,您的应用程序也依赖于此.想象一下基于框架的非常复杂的大型应用程序的迁移或调试 - 软件版本控制,硬件升级等等......考虑风险因素和应用程序的实际支持!

对于大型项目,我会远离开源平台,如Wordpress,Joomla,Drupal等......构建可扩展的良好编写应用程序的最佳方法是自己构建它!那样你就会知道它背后的东西!记得! - 压缩,缓存,尽可能在数据库中存储,优化,在网页设计中使用较少的图像,避免复杂的URL重写.并再次优化!通过您的服务器访问和错误日​​志并再次优化!:)当你开始点击4位数的访问者时,你所做的每一次优化和加速都会让你回报.

在我超过14年的网络开发经验中,我从错误中吸取了教训,并且知道何时何地需要一个框架.关于项目的一些阅读和项目规划时间将比浪费和学习更省时省力.时间就是金钱!

希望这有助于某人改善他们的开发时间!

我将继续测试和长凳,并在这里发布更新!

来源:bit.ly/OX3UTo

  • +1,对于很多信息,但你的帖子看起来像一些神秘冗长的文章,一点点格式将使它真棒:) (2认同)

ddi*_*hev 12

作为一个有大约十几个php框架经验并且自我评估为精通一些人(包括Cake)的人,我建议你研究一下Yii Framework.它轻巧,高效,写得很好,支持大量功能,拥有大而友好的社区,并且比CakePHP imho更好.

至于每天4000次点击 - 基本上没什么.如果您编写优秀的应用程序(处理慢速查询,相应地优化数据库,最终将大量流量内容移至CDN),在体面的服务器上,Web应用程序可能需要多少次.