很多工作几年的php开发者都会有这样的迷茫,php开发多了,无外乎“增删改查调接口”,真的是这样吗?
实际上开发者除了把自己当成php程序员,更应该关注php以外的东西,将自己定位于能熟练使用php搭建系统的工程师 。
我认为高级php工程师可以往几个方向去发展:
1.深度方向
一个工程师要往高阶发展,必须同时强化几个技术能力:
·
设计能力:懂得如何利用分层、面向对象、设计模式等设计组织代码
·

文章插图
·
编码能力:熟悉php语法特性,知道怎么用一两行代码代替初级开发者十几上百行代码 。
·
·
工程能力:学会如何快速构建工程,学会如何构建可读、可扩展性的工程,学会如何避免埋坑给后人,学会如何与人协作维护工程,学会如何保证工程质量,学会如何权衡利弊,学会如何在困难面前妥协 。
·
·
抽象能力:初级开发者通常会等到逻辑重复时再抽象封装(甚至怕拖进度或者懒惰而放弃),而高级开发者通常一开始写出的逻辑就为了以后的重用,并且深知一开始多付出的思考设计时间最终都会因为复用得到回报 。很多开发框架就是一步步抽象/埋坑/优化而来的 。
·
·
架构能力:一个业务系统如何划分模块,模块之间如何协作通信,每个模块的技术选型如何做,系统细节如何规避问题等等 。
·
·

文章插图
优化能力:学会如何评估、分析、提升系统性能 。优化途径很多,产品功能优化、业务逻辑优化、基础技术优化、操作系统底层硬件的优化等等 。
·
下面说一下实操:
php如何进行多进程编程
一、在php中使用pcntl_fork扩展函数进行frok多个进程 。
pcntl_fork返回值说明
当pcntl_fork函数被调用时,它将返回3个值 。
如果返回值为-1,则fork失败,并且没有子进程 。这可能是由于缺少内存,或者因为已经达到对用户进程数量的系统限制 。
如果返回值是大于0的任何数字,当前脚本是调用pcntl_fork()的父级,返回值是分叉的子进程的进程ID(PID) 。最后,如果返回值为0,则当前脚本是被分叉的子节点 。
pcntl_fork执行原理
如果你成功的执行pcntl_fork()函数,将有两个PHP副本同时执行相同的脚本 。它们都从pcntl_fork()行继续执行,最重要的是,子进程获取父进程中设置的所有变量的副本,甚至是资源 。我们忘记的一个关键的事情是,资源的副本不是一个独立的资源,他们将指向同一个事情,这可能是有问题的,更多的详情,稍后将继续讨论 。
现在,这里有一个基本使用pcntl_fork()的例子:
$pid = pcntl_fork(); switch($pid) { case -1: print"Could not fork!\n"; exit; case 0: print"In child!\n"; break; default: print"In parent!\n";
}?>
上面的脚本只是在父进程和子进程中打印一条消息 。但是,它不显示父项的变量数据如何被复制到子项,它输出了2条信息,如下所示,说明已经是有2个进程在执行了(其中一个是主进程,一个是fork出来的子进程)
[root@25f0b49dc696 wwwroot]# php fork.php In parent!In child!
接着看下面的例子:
$pid1 = pcntl_fork(); //第一次fork
$pid2 = pcntl_fork(); //第二次fork
$pid3 = pcntl_fork(); //第三次fork
$current_process_id = posix_getpid();
echo "current_process_id===$current_process_id===pid1==$pid1===pid2===$pid2==pid3==$pid3\n";
上面的例子,输出结果如下:
- 爵士舞有专业的学校吗 爵士舞教练培训学校
- 能学英语的手机游戏 学英语哪个培训机构比较好
- 北京化妆专业培训学校 北京化妆培训学校
- 网上口才培训机构 培训口才的机构
- 石家庄新航道雅思培训 南京新航道雅思培训
- 上海粤语培训班 深圳粤语培训
- 成都新东方英语培训机构 成都英语培训机构有哪些
- 衣服制作步骤图解 服装制作培训
- 免费婚姻咨询师在线电话号 婚姻情感咨询技能培训项目介绍内容
- 新东方雅思培训 上海新东方雅思培训电话
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
