php项目该怎么做,小白想学PHP?
PHP工程师都要学习什么
首先,开场:PHP是世界上最好的语言。
我只讲方法。
所有的一切都是从HELLO WORLD开始的。但在这之前你需要做一些准备工作。如果有条件,请把你的电脑装上Linux,然后百度一下如何配置PHP运行环境,如果你觉得有困难,windows下有很多一键安装的配置包(自行百度)。然后创建你的第一个HELLO WORLD程序,运行,查看效果。恭喜你成功入坑。
经历了HELLO WORLD之后,你需要学习一些基础语法、数据类型、常量、运算符、各种循环、内置函数,我相信这些一套系统的教程上面都会包含,所以,按步骤学习就可以了。有了这些基础以后,你可以开始进阶下一步,尝试写一个自己的WEB站。
不管你将来做前端还是后端,初学阶段,一些基本的东西是要掌握的,所以,HTML+CSS+JAVASCRIPT三件套了解一下,数据库MYSQL了解一下。
然后,框架是必须要学习的,选择一款容易入门的框架,CI、ThinkPHP,都是不错的选择。
当你能创建一个类似博客的个人站点时,嗯,恭喜你,入门成功。
初级:码农
初级工程师要能够完成一些基本的管理功能开发,就是我们说的增删查改,前端一些简单功能的实现。基本上三件套+mysql+框架就可以搞定。这个阶段很多代码都可以去搬运,但是,不要只搬运,更多的是去搞清楚具体的实现方式。
中级:横向和纵向的扩展
横向,要扩展你的技术栈。什么redis, memcache,mongodb各种数据库要去学习;各种框架;什么是nginx, 什么是apache;项目如何构建,如何管理项目;数据库怎么设计、什么时候改冗余,什么时候该关联;
纵向:研究一下框架的结构和思想、学习各种算法、MYSQL的各种优化、分布式数据库、JAVASCRIPT的堆栈、PHP的进程和线程 ……
不断的横向和纵向交替扩展,才能长成一棵大树。
高级:个人觉得高级是一种境界,不再局限于技术栈和架构,更多的是一种思想,此时无招胜有招。这个阶段绝不是学习一两种语言能达到的。需要长时间的一线研发经验的积累、多种项目的参与和管理,非十数年码界的摸爬滚打不能成就。
是先学php框架还是springboot或nodejs?
出项目需要先了解项目框架,框架基础打好了才能继续业务流程,有基础先接触框架,比如ThinkPHP之类的MVC框架,从控制器入手,了解session,cookie原理实现,搭好整体项目权限控制,然后进入模型设计,是用关系数据库还是KV数据库等等,项目小可以取消中间层直接进入控制器部分直接调用模型。
如何从PHP过渡到golang?
您好,您这个问题应该包含两个方面。一个是php程序员如何转成golang程序员,一个是php项目如何转换成golang项目。
对于php程序员来说,如果之前接触过c语言,或者阅读过php底层源码的话,那么学习golang会容易一些,golang继承了c语言的一些特性,同时又简化了它的使用。
golang首先它是编译型语言,这和php这种解释型语言有着本质的区别,之前很多在php中需要运行时才能检查出来的错误,现在在编译期都能查询出来。
php的关键字很少,语法也很简洁,但是它有些概念和使用方法需要深入理解,对于goroutine,对于channel,对于并发,你需要深入研究才能够初探它的皮毛,而要深入了解,你这需要源码一层去一窥全貌。
对于php项目过渡到golang项目,你会发现节省了大量服务器资源。
在golang这种常驻内存的语言中,是有线程池的概念的,如果你接触过swoole,你可能会理解一些,如果没接触过,也没有关系,你只需要知道在将php项目转换成golang项目的过程中,你不仅仅只是要注意代码的转换,思路的装换更重要。
在使用php的时候,我们并不需要过多考虑资源的回收利用问题,因为每一次请求都是独立的进程来完成的,两次请求之间并不会共享资源。而在golang中,我们就需要考虑线程并发问题,考虑锁的问题。
可以说golang是吸取了c,java,python的优点,然后集百家之长而创造出的一门编程语言,它本身有自己的缺点,但是它的优点毋庸置疑,它让编程变得更加简单,让代码运行效率变得更高效,让编写代码变得更加容易。
总结无论学习任何一门编程语言,你都需要大量的实践才能掌握,很多技巧你只是学习语法是掌握不到的,你只要不断地从项目中吸取经验,多看一些项目,你才能一点点地进步。
golang相比于其它编程语言诞生的时间不算太长,没有过多的历史包袱,因此现在学习它是最好的时机,毕竟一门编写代码简单,运行效率又高的语言还是很有吸引力的。
怎么才能招到好的PHP程序员?
你可以问一下这几个问题:
php方面
1.了解多少种设计模式,平常生活中用到哪几种设计模式,spl标准库包含哪些,有没有用过composer
2.平常用的多的php框架,说说其中的某个框架哪些地方用到了设计模式
3.做过的最好的项目是什么,数据量有多大,日ip有多大
4.有没有纯个人开发的作品,有的话展示一下
5.做过哪方面的业务? 商城 p2p 企业站 小程序 公众号
6.对协程了不了解,用没用过协程框架?(基本到了与workerman swoole 相关了,算提分项了)
7.有没有自己的开源项目(这个提分)
前端方面
除了上面类似的,前端用过什么框架,做过什么,我一般会多问一个问题。
请谈谈事件绑定和事件委托的区别是什么,在jQuery中是怎样体现的。
一般这个答不出的只能说能写js 但基础不扎实。
我个人不太偏向笔试,因为中国大部分写代码的人边百度谷歌边解决问题,一个问题,一个技术有可能用比写不出来,但用工具能解决,能办事就行。
做项目必须要用thinkphp吗?
1、项目必须用thinkphp吗?
答:不一定非得有thinkphp框架,现在主流的框架除了thinkhphp ,还有Laravel、CodeIgniter、CakePHP、ZendFramework、Symfony、yii等知名框架,这几个框架都是很成熟的框架了。做普通项目,选用以上任何一个框架都没有问题。
2、 用原生的不行吗?
答:用原生的可以。但使用框架更方便,可以减少开发时间,降低成本。
(1)防止重复造轮子,thinkphp框架帮你实现了MVC架构,路由功能,封装数据库操作,还有模型,视图,日志等功能。
(2)前后端越来越分离。现在很多用原生的大部分是前后端混写,整个页面最终会变得很混乱,不利于修改。框架一般都实现模板语言,相比把php语法混入前端页面,模板语言更接近前端语言,代码更简洁,可读性更好,修改更方便。如果完全使用api接口提供服务,可使用PhalApi 这类接口框架。
(3)统一的入口文件。不少使用原生PHP方式,都是一个页面对应一个php文件,项目结构混乱,而且不安全。而thinkphp采用统一的入口文件,根据url和路由规则,执行对应模块的控制器的方法,项目结构清晰易管理。
(4)易用的数据库封装类。相信不少程序员都不喜欢写纯粹的sql语句,容易出错。而框架自带了数据库类,减少写繁杂的sql语句,十分方便,效率提升不少。当然,这样带来一个问题,就是有些程序员脱离了框架,就不懂怎么写sql语句了。
(5)Thinkphp、PhalApi、Workerman也是基于原生php开发的框架。如果使用原生开发,最终可能变得像那些框架,那为什么不一开始就采用成熟的框架呢?而Swoole框架甚至直接使用C语言开发。
如果是小公司,并且没有足够的经验,采用成熟的框架的最明智的选择。