1. 领加网络的博客首页
  2. 后端开发

好了,你马上要成为一名合格的PHP开发工程师了

各位同学在毕业前后将面临找工作的阶段,想要入职一家心仪的公司,成为一名新晋PHP工程师,我们要掌握哪些技能呢?我们来说一说。

不得不承认,phpStudy是一款非常优秀的PHP集成环境,版本一键切换,可视化配置,简单粗暴,直接上手。

        但是问题来了,单独安装PHP不会了吧?单独安装Nginx不会了吧?单独安装PHP扩展更不会了吧?一切好用的工具都是一把双刃剑。但是在实际工作中,往往我们会被要求独立配置各种环境,并且通过命令行启动、停止、重启各种服务,尤其是在Linux下,有时候我们不得不通过Shell脚本来组合命令来实现一些功能,所以必要的命令行我们是需要掌握的,比如:

启动Nginx服务
service nginx start;
停止服务
service nginx stop;
平滑重启
service nginx reload;
监测nginx配置
nginx -t;
启动PHP
servcie php-fpm start;
停止PHP
service php-fpm stop;

刚开始可能会很不习惯,当熟练了以后,很方便的能创建一个虚拟主机,跑不同的应用。        

能够独立配置各种服务,目的是让我们更加熟悉PHP应用的运行机制。

在学习阶段,在windows下开发没有任何问题,但是我要说的是,找工作前,一定要学会Linux下开发,性能和兼容性上不说了,自行百度即可;基本上99%的PHP代码都运行在Liunx服务器上,当然CentOS/FreeBSD/Linux也一样,只是血统稍有区别。Linux与Windows下开发需要注意的是:

  • Linux对大小来写很敏感,对文件、文件夹是否可写、可修改有严格的限制;最大程度上可以拒绝后门木马,因为压根不进去
  •  在Linux调试PHP能使开发的自PHP代码有更好的适用性
  •  在 Windows 中,斜线(/)和反斜线(\)都可以用作目录分隔符,在Linux上路径的分隔符是/
  • Linux在部署发布过程中也有天然的优势,比如Git专门为Linux而生
  • 还有文件字符集的问题,容易出现BOM字符的情况
  • 当然还有更多的不同,需要同学自行了解

Composer是PHP中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件。

安装Composer需要完成以下两步:

第一:下载Composer到你的项目目录。使用以下命令:

curl -s (Composer web site)/installer | php

 记着要设置一下国内镜像,比如阿里云镜像,否则,你懂的。

        简单说下它的作用(支持Windows和Linux),GitHub上有很多优秀的开发者发开的轮子,如发送邮件,公众号开发等,我们可以composer加载这些轮子而无需关系引入的问题,如include,require,Composer帮我们完成这些事情,我们可以更专心关注业务层面的开发。

比如我们使用EasyWechat包

composer require overtrue/wechat:~4.0 -vvv

这个阶段对Mysql的要求是,创建数据库,删除数据库,表创建,表删除,表修改,数据的新增,删除,查询,修改,这些基本语句必须要熟练运用,面试过程中如果不会,我会直接pass。

了解一下索引,有基础的优化方案就够了。实际使用中,熟练运用如何使用客户端连接数据库,我遇到过个别的同学,能熟练连接自己电脑上的数据库,但是不会连接云数据库,如阿里云的RDS,其实没区别,数据库地址,用户,密码搞定。

大型的项目或者产品,公司往往会配置DBA这个角色来负责数据库维护,专业的事交给专业的人来做。

没有这个服务器,将无法通过外网访问我们的应用。对Nginx的要求是,能够熟练配置虚拟主机即可。我们先简单的了解一下,后续我会专门写一篇关于Nginx的文章

events {
    use epoll;
    worker_connections 51200;
    multi_accept on;
}
http {
    server {}
    server {}
    ...
}

这是Nginx的基本结构,往往我们创建站点的时候,更关注server{}

server {
    listen 80;        //监听80端口,重要!!!
    listen [::]:80;
    server_name www.lingj.net;    //要使用域名,重要!!!
    access_log /data/wwwlogs/nginx.log combined;
    index index.html index.htm index.php;
    root /data/wwwroot;  //站点根目录,重要!!!
​
    include /usr/local/nginx/conf/rewrite/laravel.conf;
    #error_page 404 /404.html;
    #error_page 502 /502.html;
​
    location ~ [^/]\.php(/|$) {
        #fastcgi_pass remote_php_ip:9000;
        fastcgi_pass unix:/dev/shm/php-cgi.sock; //连接PHP,重要!!!
        fastcgi_index index.php;
        include fastcgi.conf;
    }
​
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
        expires 30d;
        access_log off;
    }
    location ~ .*\.(js|css)?$ {
        expires 7d;
        access_log off;
    }
    location ~ /(\.user\.ini|\.ht|\.git|\.svn|\.project|LICENSE|README\.md) {
        deny all;
    }
}

所以,我们在部署一个PHP站点的时候,必须知道域名,端口号,网站根目录,连接PHP的方式!!!配置完毕后,别忘了执行

nginx -t;    //监测配置是否正确。

一个站点是如何展示到用户面前的?如果域名解析不熟悉,抱歉放弃软件开发吧。我们可以不需要知道域名是如何解析的,但是我们必须知道如何设置域名解析。通常情况下,对一个站点我们要做A记录或者CNAME。

A记录:这个最容易理解,把某个域名指到某个IP即可,再通过上面的Nginx配置好的域名,就可以访问了。配置完域名后,我们通常需要执行 ping命令或者dig命令来观察是否已经解析。

CNAME记录:通常在部署CDN(自行百度)的时候会用的到,意思是把我们的域名如 www.test.com 解析到 CDN服务商提供的另一个域名如 cdn.test.baidu.com,这样,用户在访问我们应用的时候,无法拿到我们真实服务器IP,也是一种保护机制。

一定要记住,框架是提升我们效率的工具,不要过渡依赖任何一种框架,原生的代码一定要掌握,才能熟练使用框架。

        框架是工具!!!是工具!!!是工具!!!

        用多了连基本的SQL都不会写了,因为框架基本都是ORM封装到了极致,在这里PHP的基础就体现出来了。

        前期用一个最容易上手的框架,如ThinkPHP,国人开发,符合国内编码习惯,简单易学。但是在这里我本人推荐使用Laravel框架,难度稍大,但你一定会爱上它的。

        适合自己的才是最好的,不要过分追求框架的性能对比指标。框架之间区别不大,学会一种,新框架学起来会非常快的。

        框架最最最基础的4要素,路由控制器模型视图,一定要熟练掌握,其他的如队列,事件,异步,命令行都是在为我们的业务服务。

这也是任何一家公司必须掌握的工具,完全当做一个软件去学习即可,更高级的用法如钩子,工作流,后期可以再掌握,这里推荐在码云中进行练习。

  作为后端程序员,现阶段,这些前端知识作为熟知,其中AJAX必要掌握,要熟悉AJAX的同步和异步的区别,这才是AJAX的本质。如果是产品采用VUE技术栈,那么要求我们后端熟悉的是API开发流程,如果是JQuery,DOM元素选择器,Ajax是必要的,Html是所有Web开发的根本,这个不必多说了。

进阶的技术栈,如队列,分为Redis驱动,Database驱动等;负载均衡,集群,分布式等等,这些技术储备是你入职的加分项,这些技术栈了解即可,无需深入,工作过程中会接触的到,对于初次入职的程序员,用人企业不会作为绝对指标。
总之,对于毕业前后的这个阶段,用人企业更关注的是候选人的沟通能力,学习能力和可塑性,所以除了技能上的硬件指标,软性实力是必不可少的,因此,在平时的学习中一定要多想,想想它是怎么实现的?一定要做练习,想了以后要实践一下,不管结果如何,毕竟实际操作过,印象会更深刻。
以上是初入PHP开发行业最基础的技能要求,不要求精通,熟悉,熟知,会用即可,面试过程中有问就有答,再综合你的软性实力,相信一定会找到心仪的工作。

原创文章,作者:代码加工厂,如若转载,请注明出处:http://blog.lingj.net/2020/11/27/182.html

发表评论

邮箱地址不会被公开。 必填项已用*标注