第一篇:被swoole坑哭的PHP程序员
被swoole坑哭的PHP程序员
本文主要记录一下学习swoole的过程、填过的坑以及swoole究竟有多么强大!首先说一下对swoole的理解:披着PHP外衣的C程序。很多PHPer朋友看到swoole提供的强大功能、外界对其的崇拜便跃跃欲试的安装、调 试其demo、编写新功能,然后兴奋的奔走相告。没过几天当你按照自己的理解继续用swoole时,发现代码并没有按照自己的预期运行,然后开始破口大 骂,什么破东西呀,代码跟demo基本一样,为啥运行不通呢?什么狗屁work、task、共享内存、ipcs、异步,各种问题涌现,然后迅速去查官方文 档,发现文档中竟然对这些并没有提及,只是简单的介绍怎么使用,此时几乎对swoole丧失希望。
遇到的几点问题:
1:关于phper常用的全局变量(global)为什么在onRequest函数中不能使用。因为swoole是多线程编程,global是不能在多个进程间共享的。例 1.global $i = 0;2.3.function onRequest(){ 4.5.echo $i++;6.7.}
如果在swoole中写一个上面的程序,并不会每次访问输出一个递增的数字。如果要实现预期的效果,需要使用swoole_table的相关函数。2:什么是异步、什么是回高 对于phper来说,对异步、回调的理解估计就是ajax。当看到swoole里面对异步、回调的解释,貌似很简单的样子,就这样在没有任何多线程编辑经验的时候贸然用了swoole,结果被坑的偷偷撸代码好几个通宵来填自己的坑。3:为什么onReceive收到的数据这么大
客户端发送的多次请求,服务端是可以一次性接收的。并不是客户端发送一次,服务端接收一次 4:自制httpserve 写一个http服务端,然后通过浏览器访问这个自制的服务器,刷新一次浏览器,服务端为什么为接收到两次请求?这个问题估计困饶了好多初次用swoole写httpserver的朋友。因为浏览器会多发一个favicon.ico请求。原因
出现这种情况的原因其实很简 单,大部分phper都只会php这一种语言,主要用途就是做web,写业务逻辑。很少去了解服务器程序的开发。有一次一个朋友用swoole写了一个简 单的服务端,一个客户端,跑过来问我为什么都启动了却都收不到数据,我简单看了下代码,所有连接确实都成功了,两端都设置了onReceive回调,代码 没问题,看到最后才发现他的服务端、客户端都设置了接到消息的回调函数,但是两端都没有向对方发消息,两端处于僵持状态。然后swoole官方对于这种常 识问题没有给出说明,只是说如何设置回调、如何发消息,如何这样,如何那样。对于有服务端开发经验的同学来说,肯定不会遇到这种问题,swoole文档也 不需要指明需要这样做,因为这是常识。但对于phper来说,指明这一点是非常重要的,因为如上面所说phper是没有这方面认知的,只有服务端开发经验 的程序员有才会有。
swoole的特色:网络通信 框架、异步、多线程。这些特性正是php所不完善的功能(虽然官方提供很多基础函数可以实现这些功能,然后缺少中文文档,很少有人用php来实现这部分功 能),普通的phper也不具备这些特性的基础认知,所以贸然使用swoole难免会遇到一些根本在swoole官方查不到的常识问题。使用swoole必须要掌握的技能 1.多线程编程 2.进程间通信
3.网络协议TCP/UDP的认知 4.PHP的各项基本技能 个人学习swoole的经历
在很久之前我也是一个只会 php的程序员,后来一次偶然机会需要用httpsqs,用了一段时间后发现有一些个性的需求,于是就开始看源码。这真是不看不知道,一看吓一 跳,httpsqs只是一层简单的包装,内部是一个Tokyo Cabinet数据库,印象中封装的代码也就一百多行。主要思路就是用C语言的libevent做了一个http服务器,接收请求读写tokyo cabinet数据库,当时按照这种思路做出来的程序确实不少。后来我就突发奇想,既然C语言可以用libevent函数,那PHP肯定也可以用 libevent监听网络,接收请求后读写数据库做队列服务。后来经过查php官方文档,PHP确实提供一系统完整的函数来完成这些功能,甚至多线程的全 套函数都有提供,但中文文档太少,网上也很少搜索到成熟的代码。在逼不得已的情况下,补习了linux-C多线程开发的基本原理,进程间通信的常用方法,也用来做了一些简单的demo。唯一的感觉就是写一个简单的功能,设计起来还真复杂。就在快要放弃的时候,swoole出现了。swoole所提供的功能 正是php所缺失的功能,简直是太棒了。swoole做为一种网络通信框架,只需要简单的几行设置,一个服务器就搭建起来了,以后就是不断的去完善业务代 码。之前在libevent交流群中得知swoole的设计在cc++中并不是最好的框架设计,但其亮点就是把基本功能用C封装好,业务功能留给世界上 最好的语言PHP来编写。自此便开始了swoole的填坑之旅。总结
swoole并不是一个简单的PHP框架,正如swoole官方首页的第一句话“重新定义PHP”,千万不要用旧有php的思想来写swoole代码!swoole重新激活了PHP,php成就了swoole!【编辑推荐】
1.PHP 中 9 大缓存技术总结
2.我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言
3.前端程序员为什么应该拿高薪
4.年轻程序员分享在谷歌学到的经验教训 5.Java程序员学习一天半C++的感想
第二篇:PHP程序员
**的个人简历
个人资料
姓名: **电子邮件: ******@qq.com
名族: 汉出生日期: 1991/1/3
学历: 本科居住地址: 深圳福田
性别: 男手机号码: 186***7739
4求职意向
到岗时间:即时
期望职位:php程序员
工作性质:全职
专业技能
1、熟练掌握PHP,HTML,DIV+CSS,Javascript,Ajax,jQuery等Web开发技术。
2、熟练使用PDO、MySQL方式操作MySQL数据库系统,熟悉MySQL事物及存储过程。
3、熟悉HTML,DIV+CSS前台页面技术和XML的使用。
4、熟悉网页静态化、Smarty缓存,thinkPHP缓存,掌握Web防SQL注入。
5、孰悉MVC架构开发思想模式,熟练使用Smarty模板,ThinkPHP框架,ZendFramework框架。
6、熟练掌握Zend Studio, Dreamweaver,Notepad++, EclipsePHP等常用Web开发工具;
7、了解Linux基本操作。
项目经验 项目一
项目名称:地球新闻网
软件环境:
开发工具:
项目描述: linux+apache+mysql+php Zend Studio 1.该项目是一个集各种新闻的网站。2.前台采用div+css,javascript等
技术进行页面布局,Javascript和Jquery技术制作下拉菜单、表单验证、复选框等效果。3.后台采用全面向对象开发,良好的运用了MVC三层架
构模式。
责任描述:独立开发
项目体会:通过开发这次项目,使我对制作一个网站有了一个全面的了解,也同时增
加了我的技术能力;通过该网站使我了解只有想不到,没有做不到。同时
也想到在这个发展迅速的社会,我们只有不断努力学习新的技术才能满足
客户的要求。
项目二
项目名称:聚焦购物商城
软件环境:
开发工具:
项目描述: windows+apache+mysql+php Zend Studio 8.0 该项目是一个大型的网站商城,采用thinkPHP主流框架开发。
前台包括:商品列表、搜索、商品详细页、注册、登录、购物车、会员
中心、评论等。后台有:商品管理、订单管理、会员管理、商家管理等。
满足用户购物流程的各种需求
责任描述: 负责完成了MySQL数据表、字段、索引的分析与创建,主页的图片轮换,商品详细
页,购物车模块,登录注册等功能,以及后台商品管理模块。
项目体会:通过此次项目的实战,让我对thinkPHP的掌握更加深刻,同时给我感觉的是使用模板的开发速度之快,更实现的HTML的代码与PHP代码的分
离,使得拥有更好的扩展以及维护。
工作经验
2012/8—2013/4业聚医疗器械(深圳)有限公司技术员 工作感想
之前的公司主要是生产和研发介入性医疗器械的一家公司,我的工作任务主要从事公司导管支架的研发,研发多种不同尺寸型号的球囊扩张导管。在我的工作中,使我学到了很多东西,让我变得更加细心,做事情更加注重细节,更有时间观念等等。
教育经历
2013/4—2013/8达内PHP培训php程序员主要学习了:linux系统常用操作命令,HTML/CSS,Javascript/Jquery/Ajax的前台技术,学习了用Linux系统和Windows系统开发项目,学习了Smarty模板,Zendframework,thinkPHP框架的使用,学习了DEDECMS二次开发。
在学习的过程中,自己独立完成了一个小项目《地球新闻网》,和同学合作完
成了一个商城网站《聚焦购物》,通过这两个项目的实战,为我以后的工作打
下了坚实的基础。
2008/9—2012/7湖北信息工程专修学院电子商务本科主要学习了:计算机应用基础,管理学,电子商务概论,网页设计与制作,电子商务法,商务沟通与谈判及商业职业道德专业课程,安全教育等课程。
通过这些课程的学习,使我对电子商务系统建设与管理打下了良好的基础,同时也使我拥有较强的沟通能力和职业道德水准。
个人评价 1.本人细心,乐观积极心态,吃苦耐劳,勇于挑战自我,热爱学习,喜欢总结;
2.具备良好的团队精神,能很好的与团队协作开发,有良好的沟通能力,喜欢交朋友;
3.性格开朗,阳光,喜欢篮球,游泳,羽毛球等体育运动。
第三篇:PHP程序员面试题
北京融入网络科技有限公司
PHP工程师面试题
1、请写一个实现中文字串截取无乱码的方法。(超出部分用’…..’替换)。
2、ThinkPHP框架中,下列定义有什么不同?
$userModel = M(“User”);
$userMode l= D(“User”);
3、如果让你模拟登陆微信公众平台并设置微信的开发模式中的URL和Token,你会如何去做?(思路或代码皆可)。
4、谈谈对你对PHP的认识或你擅长的技术。
5、假设有一个博客系统,数据库存储采用mysql,用户数量为1000万,预计文章总数为10亿,每天有至少10万的更新量,每天访问量为5000万,对数据库的读写操作的比例超过10:1,你如何设计该系统,以确保其系统高效,稳定的运行?
提示:可以从数据库设计,系统框架,及网络架构方面进行描述,可以自由发挥。
6、你经常去那些网站?有没有自己的博客或git 开源项目。
/ 1
第四篇:php程序员个人简历
PHP 程序员简历
基 本 信 息 姓 年 名: 龄: Xxx 21 Xxxx 性 学 别: 历: 男 专科 PHP 程序员xxx@163.com 毕业院校: 电 话:
期望职位: 邮箱地址:
专 业 技 能 核心语言: 核心语言: 熟练应用 PHP+MySQL 技术,能在 WAMP 环境下熟练编程。理解对于 Web 网站开发的安全性 安全性要求,例如防 SQL 注射、令牌加密 注射、令牌加密等技术。安全性 防 理解 Web 开发流程,具有 OO 思想,能独立开发网站。框架技术: 框架技术: 熟练使用 smarty 模板引擎技术, TP 框架开发网站。对三层结构、MVC 的开发(设计模式)有较好的理解。MVC 数 据 库: 熟练应用 MySQL SQL Server2005 数据库,以及使用 SQL 语言 MySQL、SQL Server2005 语言。前台展现: 前台展现: 熟识 HTML、XHTML 网页技术,能熟练应用 DIV+CSS 样式布局设计出符合 Web2.0的页面,熟练应用JavaScript、Ajax 技术实现对于客户端的脚本验证,能够 熟练使用Jquery类库 类库实现对页面即点即改等功能。类库 开发工具: 开发工具: 能够使用 ZendStudio-5.5.0 等 PHP 开发工具。掌握 PhotpShop、Dreamweaver 网页开发工具的使用。熟悉 php168,Ecshop 二次开发工具的使用。
项 目 经 验 人事管理系统 应用程序)人事管理系统(应用程序)软件环境: 编程工具: 责任描述: WAMP EditPlus 组内讨论需求分析以及数据建模,功能独立开发完成 无论对于大型公司,中小型公司,都避免不了对员工的管理,对于每个公司的管理者,在任何方面都需要一个既提供标准有提供管理的系统;对于公司的员工也希望能够了解 项目描述: 自己的表现及在公司的职位、职责; 让公司 对员工的管理更方便,通过本系统能有效地管理工资发放、员工的考勤动态 还可实现员工的自我查看和管理;以提高公司的执行效率和经济效益。该项目主要应用了 smarty + Ajax 等技术由于 php 是一种弱的语言,并不能实现面向对 项目感想: 象的多态(重载),所以只是用到了面向对象的编程思想。在开发的过程中也使我更加熟悉
基于 Smarty + CMS 的开发模式。天元茶叶网(二次开发)天元茶叶网(168 二次开发)软件环境: 开发工具: WAMP ZendStudio-5.5.0
第五篇:PHP程序员简历参考
姓 名 代林
手机:*** ·Email: linlinpusd@sina.com 居住地: 上海市闸北区 ·性别:男 ·出生日期:01·01
个人概况
毕业院校:海南经贸职业技术学院
专 业:电子商务
学 历:大专
期望职位:PHP程序员
项目经验:基于Apache下电子商务购物Estore系统、中小型企业及团体餐饮订餐系统、基于Ajax的网页聊天工具
专业技术 核心语言:
在windows和linux环境下,熟练安装Apache、MySQL,熟练配置好解析php的环境。
熟练应用PHP+`MySQL技术,能在LAMP环境下熟练编程。
理解对于Web网站开发的安全性要求,例如防SQL注射、令牌加密等技术。理解Web开发流程,具有OO思想,能独立开发网站。框架技术:
熟练使用smarty模板引擎技术, TP框架开发网站。
对三层结构、MVC的开发(设计模式)有较好的理解。数 据 库:
熟练应用MySQL、SQL Server2005数据库,以及使用SQL语言。前台展现:
熟识 HTML、XHTML 网页技术,能熟练应用 DIV+CSS 样式布局设计出符合Web2.0的页面,熟练应用JavaScript、Ajax 技术实现对于客户端的脚本验证,能够熟练使用Jquery类库实现对页面即点即改等功能。开发工具:
能够使用ZendStudio-5.5.0等PHP开发工具。
掌握PhotpShop、Dreamweaver网页开发工具的使用。熟悉php168,Ecshop二次开发工具的使用。
培训认证:
2012年12月在杰普软件培训公司进行培训,培训期间熟练掌握并运用以下内容
1.PHP基础编程2.PHP高级编程3.mysql数据库,数据库的增删改查 4.mysql与php结合的数据库高级编程5.Javascript的使用6.XML的使用7.Ajax的应用8.cvs,数据的并发访问控制
项目经验:
Estore(购物网站)
软件环境: PHP+MYSQL+APACHE 开发语言:JavaScript,html,css
编程工具: EditPlus 责任描述: 研究需求分析以及数据建模,功能独立开发完成
项目描述: 无论对于大型商务系统,中小型系统,都必须要有一个明确的主题思路,无论对于使用者还是管理者,在任何方面都需要一个既提供标准有提供管理的系统;
该项目主要应用了 smarty + javascript等技术由于php是一种弱的语言,并不能实现面向对象的多态(重载),所以只是用到了面向对象的编程思想。在开发的过程中也使我更加熟悉基于Smarty + CMS的开发模式。
餐饮管理(订餐系统)软件环境:PHP+MYSQL+APACHE 开发工具:ZendStudio-5.5.0
开发语言:JavaScript,html,css
项目描述:建立一个完善的客户管理系统,通过不同用户的不同需求,进行相应的调配和处理,提高对订餐系统进行配置、管理的便捷性。
责任描述:前期设计数据库,在数据库中创建相关联的表;实现模块:用户登录,依据权限用户对后台操作,包括后台管理用户admin和普通用户的编辑菜单,添加菜单,查看已付款定单,修改admin密码,所有人员消费记录,查看充值记录,查看未付款订单,帐号充值。该项目是独立完成的!
项目感想:通过对该系统的进一步深入了解,发掘出该项目适合一些中小型企业项目的订购系统的开发以及更深入的修改,对订购(订餐)系统有了更深的了解和认识!
根据客户的需求,然后利用产品的内核,进行系统的扩展和修改。
WEB聊天室构建
软件环境:PHP+MYSQL+APACHE 开发语言:JavaScript,html,css
开发工具:ZendStudio-5.5.0 项目描述:基于Ajax的web聊天室,用户登录成功后,显示在线用户,并在同一页面可以进行聊天。
责任描述:设计注册登录页面以及聊天室的主界面;利用ajax技术进行对用户名的即时验证;通过session保存用户的用户名,并更改用户状态;用ajax,php与mysql的结合显示在线用户;对聊天内容的一些特殊字符的处理与显示。
Ecshop二次开发
软件环境:PHP+MYSQL+APACHE 开发工具:ZendStudio-5.5.0 项目感想: 对二次开发又有了深入的了解,在开发过程中熟悉了网上购物的过程,购物车的实现
开发语言:JavaScript,html,css
自我评价:
自信、乐观、责任心强。具有较好的团队组织能力、分析问题和宣传策划活动能力、协调能力等。学习方面也有较强的求知欲与良好的学习能力。为人真诚,惯于换位思考;对自己要求严格,做事情讲究效率;对程序的开发及测试方面很感兴趣;有较强的学习能力,适应行业的要求和新技术的挑战;有较强的求知欲、较强的学习能力。