1,php学习起来比较简单,既支持强类型,也支持弱类型。 在使用变量的时候,可以不用提前申明变量就可以直接使用,变量可以根据需要变更类型,
比如从数值编程字符串,这个用起来就比较舒服。 当然你如果要写接口,对入参和出参进行严格规定就可以了。
2,然后php当中给变量赋值的时候,直接一个等号(=)搞定,个人觉得比某些语言复制使用(:=)这种方便多了。
3,php封装好了很多可用的方法,不需要引入其他的包。比如我们处理json的时候,直接使用json_encode或者json_decode就行,这点感觉比其他语言用起来方便一点。,
4,php调试起来也是比较方便的,改了代码,刷新一下页面就可以看到结果,不需要编译。
5,升级到php7之后,性能也是不错的。
6,缺点就是不是编译过后交给甲方,代码是公开的。但是php本身就是作为开源语言而开发的。
7,php这门语言是作为服务端语言,所以不能开发桌面应用,这个也是局限性。
8,如果用来写一般的web项目,就是php+mysql就可以搞定。 如果对性能有点要求的,会使用php+mysql+redis+queue。成型的框架推荐laravel和thinkPHP。
9,如果是高并发的服务,那么建议使用workman,这个是常驻内存开发。一般开发接口的话建议使用webman,开发通讯的话建议使用成型的GatewayWorker。
10,如果你要使用进程,线程,协程。那么建议使用swoole这个扩展。不过swoole似乎不支持线程,主要是协程。成型的框架建议使用hyperf。
为什么很多人觉得php不行呢
1,一方面部分开发者就停留在简单的增删改查阶段,大家都觉得很low。
2,然后就是性能问题,因为比较流行的搭配是lnmp,用的是php-fpm模式开发。访问一次,解析一次,然后释放。这个对于一般流量的网站来说没有问题。但是并发高的
时候,就会感觉卡。(可能很多人连CGI,fastCGI,php-fpm都不是很清楚,建议了解一下)
3,如果你需要高性能的服务,就使用workman来开发,为什么呢?workman是使用socket实现的,源码可见,支持多进程,自定义进程。而且使用和其他php框架基本没什么差别。workman实现
了php代码一次加载,常驻内存的功能。不需要每一次请求都重复加载,解析,释放的操作。你如果懂一些通信协议,你甚至可以使用workman自己编写通信服务。不过
感觉大多数php不懂通信协议,建议至少你要了解http协议,websocket协议吧。
4,你也可以使用swoole来处理高性能服务,建议使用hyperf,用起来和laravel差不多,也支持自定义进程,各种通信协议,微服务,连接池。这个上手难度可能高一点,
不过既然你都搞到swoole了,那你至少也是一个中级工程师了。
5,如果你非要说php不能拿去开发桌面应用,那你是疯了。
6,那些拥有话语权的人说了php不行,下面的人也不了解清楚,就跟着无脑黑。
留在最后的话:
1,不要做简单的增删改查,空闲时间了解一下mysql的优化,mysql的增删改查实现原理,主从同步原理,
2,学习redis的各种数据类型的操作方法以及优缺点。了解 redis的zset系列方法,xset系列方法,
3,学习ip,tcp,udp,http,websocket协议,尽可能自己实现http协议,websocket协议。
4,学习关于php的cli模式编程,不要看到黑洞洞的窗口就害怕。了解php在cli模式下和fpm模式下变量用法的区别。
5,学习关于内存,进程,线程,协程的相关知识。
6,学习rabbitmq消息队列,了解运行原理,能够手写消息队列。了解Kafka,redis消息队列。
7,学习并使用nacos,了解服务注册与发现。
8,学习操作linux操作系统,熟悉常用的操作命令,会shell编程
9,会使用docker容器,打包镜像,服务编排
10,熟悉php常用的设计模式,以及各个设计模式的优缺点,并能够运用到实践。
11,自己能够手写一个框架,封装一个组件,打包发布composer,不是不需要重复造轮子,写一遍你就知道怎么实现和怎么优化。
11,需要学的知识很多,但是把上面列出来的知识学会了,php不可能不行的
比如从数值编程字符串,这个用起来就比较舒服。 当然你如果要写接口,对入参和出参进行严格规定就可以了。
2,然后php当中给变量赋值的时候,直接一个等号(=)搞定,个人觉得比某些语言复制使用(:=)这种方便多了。
3,php封装好了很多可用的方法,不需要引入其他的包。比如我们处理json的时候,直接使用json_encode或者json_decode就行,这点感觉比其他语言用起来方便一点。,
4,php调试起来也是比较方便的,改了代码,刷新一下页面就可以看到结果,不需要编译。
5,升级到php7之后,性能也是不错的。
6,缺点就是不是编译过后交给甲方,代码是公开的。但是php本身就是作为开源语言而开发的。
7,php这门语言是作为服务端语言,所以不能开发桌面应用,这个也是局限性。
8,如果用来写一般的web项目,就是php+mysql就可以搞定。 如果对性能有点要求的,会使用php+mysql+redis+queue。成型的框架推荐laravel和thinkPHP。
9,如果是高并发的服务,那么建议使用workman,这个是常驻内存开发。一般开发接口的话建议使用webman,开发通讯的话建议使用成型的GatewayWorker。
10,如果你要使用进程,线程,协程。那么建议使用swoole这个扩展。不过swoole似乎不支持线程,主要是协程。成型的框架建议使用hyperf。
为什么很多人觉得php不行呢
1,一方面部分开发者就停留在简单的增删改查阶段,大家都觉得很low。
2,然后就是性能问题,因为比较流行的搭配是lnmp,用的是php-fpm模式开发。访问一次,解析一次,然后释放。这个对于一般流量的网站来说没有问题。但是并发高的
时候,就会感觉卡。(可能很多人连CGI,fastCGI,php-fpm都不是很清楚,建议了解一下)
3,如果你需要高性能的服务,就使用workman来开发,为什么呢?workman是使用socket实现的,源码可见,支持多进程,自定义进程。而且使用和其他php框架基本没什么差别。workman实现
了php代码一次加载,常驻内存的功能。不需要每一次请求都重复加载,解析,释放的操作。你如果懂一些通信协议,你甚至可以使用workman自己编写通信服务。不过
感觉大多数php不懂通信协议,建议至少你要了解http协议,websocket协议吧。
4,你也可以使用swoole来处理高性能服务,建议使用hyperf,用起来和laravel差不多,也支持自定义进程,各种通信协议,微服务,连接池。这个上手难度可能高一点,
不过既然你都搞到swoole了,那你至少也是一个中级工程师了。
5,如果你非要说php不能拿去开发桌面应用,那你是疯了。
6,那些拥有话语权的人说了php不行,下面的人也不了解清楚,就跟着无脑黑。
留在最后的话:
1,不要做简单的增删改查,空闲时间了解一下mysql的优化,mysql的增删改查实现原理,主从同步原理,
2,学习redis的各种数据类型的操作方法以及优缺点。了解 redis的zset系列方法,xset系列方法,
3,学习ip,tcp,udp,http,websocket协议,尽可能自己实现http协议,websocket协议。
4,学习关于php的cli模式编程,不要看到黑洞洞的窗口就害怕。了解php在cli模式下和fpm模式下变量用法的区别。
5,学习关于内存,进程,线程,协程的相关知识。
6,学习rabbitmq消息队列,了解运行原理,能够手写消息队列。了解Kafka,redis消息队列。
7,学习并使用nacos,了解服务注册与发现。
8,学习操作linux操作系统,熟悉常用的操作命令,会shell编程
9,会使用docker容器,打包镜像,服务编排
10,熟悉php常用的设计模式,以及各个设计模式的优缺点,并能够运用到实践。
11,自己能够手写一个框架,封装一个组件,打包发布composer,不是不需要重复造轮子,写一遍你就知道怎么实现和怎么优化。
11,需要学的知识很多,但是把上面列出来的知识学会了,php不可能不行的