本文目录一览:
- 1、php框架相对原生php影响性能或效率吗
- 2、当今流行的PHP框架中各自都有什么特点,优缺点都在哪?
- 3、使用过哪些php框架.试描述其优劣点
- 4、如何通过监控 php-fpm status排查问题
- 5、如何利用PHP监控网站运行状态
php框架相对原生php影响性能或效率吗
影响不大。因为http的请求,会受到网络速度的限制。与此相比,程序内部实现造成的影响,可能是很微小的。目前流行的php框架有yii、ci等。用它们编写一个简单的程序,和不使用框架,运行速度几乎没有差别。但使用框架时也需注意一些问题。
一个网页响应速度,和其网站架构、HTML的结构和比较耗时的操作关系较大。
其中网站架构涉及硬件设备和应用程序分布式布署的问题,对性能影响最为显著。一些程序难以解决的性能瓶颈,要用架构设计去解决。比如数据库读写分离。
优化HTML结构也是优化网站的课题之一。更为简约的编码,可以节约带宽,也能加快浏览器渲染的速度。页面字节大小,是前端设计的重要指标。异步加载和代码压缩,是减少网页下载时间的重要手段。
程序比较耗时的操作,如数据库查询、图片处理、压缩文件等。其中数据库的因素较为普遍。这里要提到一个框架的问题。yii框架自带的数据库模型非常强大,有了它我们基本上不用写SQL语句。但是,它自己生成的SQL语句不一定是最佳的。为了保证网站性能,关键的查询需要自己把握。而且比较复杂的抽象,也会降低性能。它的官方文档中,也不建议在大型网站中使用模型。
综上,框架的特性要选择性地使用。使用前要仔细阅读文档。优化网站要考虑多种因素,而不是仅仅关心程序的实现。要杜绝对程序效率影响不大的"微优化"。
当今流行的PHP框架中各自都有什么特点,优缺点都在哪?
1. Yii Yii是一个基于组件的高性能的PHP的框架,用于开发大规模Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主体化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。而且这个框架的价格也并不太高。事实上,Yii是最有效率的PHP框架之一。 2. CodeIgniter CodeIgniter是一个应用开发框架——一个为建立PHP网站的人们所设计的工具包。其目标在于快速的开发项目:它提供了丰富的库组以完成常见的任务,以及简单的界面,富有条理性的架构来访问这些库。使用CodeIgniter开发可以往项目中注入更多的创造力,因为它节省了大量编码的时间。3. CakePHPCakePHP是一个快速开发PHP的框架,其中使用了一些常见的设计模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC。其主要目标在于提供一个令任意水平的PHP开发人员都能够快速开发web应用的框架,而且这个快速的实现并没有牺牲项目的弹性。4. PHPDevShellPHPDevShell是一个开源(GNU/LGPL)的快速应用开发框架,用于开发不含Javascript的纯PHP。它有一个完整的GUI管理员后台界面。其主要目标在于开发插件一类的基于管理的应用,其中速度、安全、稳定性及弹性是最优先考虑的重点。其设计形成了一个简单的学习曲线,PHP开发者无需学习复杂的新术语。PHPDevShell的到来满足了开发者们对于一个轻量级但是功能完善,可以无限制的进行配置的GUI的需求。5. AkelosAkelos PHP框架是一个基于MVC设计模式的web应用开发平台。基于良好的使用习惯,使用它可以完成如下任务:◆方便的使用Ajax编写views◆通过控制器管理请求(request)及响应(response)◆管理国际化的应用◆使用简单的协议与模型及数据库通信你的Akelos应用可以在大多数共享主机服务供应方上运行,因为Akelos对服务器唯一的要求就是支持PHP。因此,Akelos PHP框架是理想的用于发布单独web应用的框架,因为它不需要非标准PHP配置便能运行。6. Symfony Symfony是一个用于开发PHP5项目的web应用框架。这个框架的目的在于加速web应用的开发以及维护,减少重复的编码工作。Symfony的系统需求不高,可以被轻易的安装在任意设置上:你只需一个Unix或Windows,搭配一个安装了PHP5的网络服务器即可。它与差不多所有的数据库兼容。Symfony的价位不高,相比主机上的花销要低得多。对于PHP开发者而言,使用Symfony是一件很自然的事,其学习曲线只有短短一天。干净的设计以及代码可读性将缩短开发时间。开发者可以将敏捷开发的原理(如DRY,KISS或XP等)应用在其中,将重点放在应用逻辑层面上,而不用花费大量时间在编写没完没了的XML配置文件上。Symfony旨在建立企业级的完善应用程序。也就是说,你拥有整个设置的控制权:从路径结构到外部库,几乎一切都可以自定义。为了符合企业的开发条例,Symfony还绑定了一些额外的工具,以便于项目的测试,调试以及归档。7. PradoPRADO团队由一些PRADO狂热者组成,这些成员开发并推动PRADO框架以及相关项目的进行。PRADO的灵感起源于Apache Tapestry。从04年开始,PRADO成为SourceForge上的开源项目之一。这个项目目前进展到了3.x版本。8. Zend作为PHP艺术及精神的延伸,Zend框架的基础在于简单,面向对象的最佳方法,方便企业的许可协议,以及经过反复测试的快速代码库。Zend框架旨在建造更安全,更可靠的Web 2.0应用及web服务,并不断从前沿厂商(如Google,Amazon,Yahoo,Flickr,StrikeIron和ProgrammableWeb等)的API那里吸收精华。9. ZooP Zoop PHP框架,意为Zoop面向对象的PHP框架。这是个稳定,可伸缩并可移植的框架。从诞生到现在的5年间,已经在不少产品开发中被使用。Zoop是一个快速,有效并干净的框架。它的伸缩性很好,你可以只安装你需要的功能。对代码并不很熟悉的开发者也可以通过Zoop快速的开发安全的web应用。熟练的开发者则可以更加将Zoop的弹性利用到极致。Zoop建议将display,logic以及数据层(MVC)分开使用。Zoop由很多组件和项目集合而成,其中包括smarty和prototype AJAX框架,PEAR模块等。高效的核心组件提供了很多你原本需要自己编码来实现的功能。Zoop内置的纠错功能可以通过配置实现生产环境下的错误日志生成,这个错误日志提供了很多信息,可读性很高,可以更轻易的寻找并排除错误。Zoop的一个特别之处在于其GuiControls,在PHP中是一个相当革新的想法。它提供了很多form widgets与验证完整的集合到一起,并形成了一个可以轻松打造个性化GuiControls的框架。10. QPHPQPHP,意为快速PHP,它是一个与ASP.NET类似的MVC框架。基本上它是这样一个情况:◆整合了Java和C#的美感◆除去了在其他PHP框架中使用的Perl形式的意义含糊的语言◆大量基于OOP的概念 Framework Comparison ChartFrameworkPHP4PHP5MVC1Multiple DB's2ORM3DB Objects4Templates5Caching6Validation7Ajax8Auth Module9Modules10Zend Framework-----CakePHP--Symfony Project---Seagull Framework-WACT-----Prado----PHP on TRAX-----ZooP Framework-eZ Components-----CodeIgniter---#1: Indicates whether the framework comes with inbuilt support for a Model-View-Controller setup.
#2: Indicates whether the framework supports multiple databases without having to change anything.
#3: Indicates whether the framework supports an object-record mapper, usually an implementation of ActiveRecord.
#4: Indicates whether the framework includes other database objects, like a TableGateWay.
#5: Indicates whether the framework has an inbuilt template engine.
#6: Indicates whether the framework includes a caching object or some way other way of caching.
#7: Indicates whether the framework has an inbuilt validation or filtering component.
#8: Indicates whether the framework comes with inbuilt support for Ajax.
#9: Indicates whether the framework has an inbuilt module for handling user authentication.
#10: Indicates whether the framework has other modules, like an RSS feed parser, PDF module or anything else (useful).
使用过哪些php框架.试描述其优劣点
1、BroPHP框架:
优点:轻量级学习型框架,配置简单,操作简单,容易上手,提供了比较全面的文档。 缺点:
2、ThinkPHP框架:
优点:功能比较全面,配置相对比较简单,操作相对比较简单,容易上手。
缺点:麻烦的URL路由,不支持模板的部分缓存,提供的操作方法太多,新手不知如何选择,文档不够全面。
3.CodeIgniter框架:
优点:
1. 配置简单,全部的配置使用PHP脚本来配置,执行效率高;具有基本的路由功能,能够进行一定程度的路由;具有初步的Layout功能,能够制作一定程度的界面外观;数据库层封装的不错,具有基本的MVC功能
2. 快速简洁,代码不多,执行性能高,PHP框架简单,容易上手,学习成本低,文档详细;自带了很多简单好用的library,框架适合小型应用
缺点:
1. 把Model层简单的理解为数据库操作
2. PHP框架略显简单,只能够满足小型应用,略微不太能够满足中型应用需要
如何通过监控 php-fpm status排查问题
明:
php-fpm和nginx一样,内建了个状态页,可以通过该状态页了解监控php-fpm的状态
具体:
1. php-fpm.conf开用php-fpm状态功能
# grep pm.status_path /usr/local/php/etc/php-fpm.conf
pm.status_path = /phpfpm_status
默认情况下为/status,当然也可以改成/phpfpm_status等,我这里是改成/phpfpm_status啦
2. nginx配置
在默认主机里面加上location或者你希望能访问到的主机里面。
server {
listen 80;
server_name 127.0.0.1;
location /nginx_status {
stub_status on;
access_log off;
}
location /phpfpm_status {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
}
3. 重启nginx、php-fpm使配置生效
# /etc/init.d/nginx restart
# /etc/init.d/php-fpm restart
如何利用PHP监控网站运行状态
那就自动刷新了 一可以网页的自动刷新功能 在网页的开头写代码 refresh表示刷新 content=3表示间隔3秒刷新一次 url表示刷新后跳转的页面,如果是本页面,就写本页面的网址 再就是要用到ajax,这个我不太懂,所以就不说了