8天从零学习PHP-day0 了解PHP及环境搭建

一、缘由

学习背景/为什么学?

最近在godaddy上面买了台Linux主机,部署了一套博客系统,目前是使用gatsby.js编译的静态网站。但我需要一些简单的功能,比如记录PV,评论,搜索,JavaScript错误采集上传等。这些功能虽然大都有对应的免费插件,但服务器一般都在国外,因为中国的网络问题,加载速度极慢,体验几乎为零。

Linux主机支持且仅支持PHP环境。所以没办法使用我比较擅长的一些服务端语言来开发。

但我并不是一个因为不会或者能力不足就不去做事的人,我决定用8月份剩下的8天时间,从零开始自学PHP。

在学习PHP之前,我对PHP并无好感,甚至曾一度跟风鄙视这个语言。后来随着思想的变化和视野的开阔,我想通了很多事,应该始终保持开放的心态来对待技术。希望这短短的8天时间,能让我看到PHP一些不一样的地方。

学习目标及计划

计划用8天时间,平均每天花费3个小时,来学习PHP,总共大约投入24个小时,也就是一整天时间。

期望能达到什么水平?很简单,使用PHP搭建一个RESTful的web服务程序。

由于时间比较短促,我也不打算深入研究 PHP 源码、zend 引擎这些层面。

总的来说,学习PHP仅仅是为了解决我现在的需求。所以这24个小时大部分都会花在学习语法和API及框架的实际应用上面。也就是重实战而轻理论。而且我也不会深挖每个技术细节,因为要学透一门语言需要花费大量的时间。我只会关注比较重要的方面。

计划大致如下。

day0 了解PHP及环境搭建

day1 PHP初探

day2 PHP深入

day3 PHP扩展

day4 框架初探

day5 数据库

day6 RESTful服务

day7 待定

day8 待定

也许被你发现了,这明明是9天,但程序员的数学从来都是以 0 作为初始下标的。

涉及技术栈/前置知识

可能需要一些前置知识,如前端开发知识(htmlcssJavaScript)、数据库知识(mysqlredis)、服务器知识(apache)和查询语言知识(graphql)。最好再熟悉一门服务端语言知识(javagolang)和一些网络(Http)知识。

这些知识都不是必须的。如果感兴趣可以去学习一下,最好看一遍官方文档,明白概念和简单应用。

如果不会也不知道它们都是做什么的,没关系。因为我们学的是PHP,而不是它们,千万别被这些名词吓倒。

其他

客观角度来看,PHP是一门步入暮年的语言。还有前途,但很有限。因为它没有核心竞争力。

从社区活跃度和实际情况调查,最活跃的是以ECMAScript为核心的大前端社区,其次是Java老牌语言,人工智能领域新崛起的Python语言,云存储领域的golang,前端工程化和API中间层的node.js。

警告

如果学习PHP对你毫无帮助,你大可不学。停止继续浏览这个网页,去做点其他对你有意义的事情吧。

 

二、了解PHP

php简史

PHP是一门运行在服务器上的脚本语言,全称 Perfonal Home Page。后更名 Hypertext Preprocessor,中文名“超文本预处理器”。作者是勒多夫。

PHP诞生于1994年,是一门历史悠久的编程语言。

1995年,发布了第一个版本。作者是Rasmus,目的是管理个人文档。

1997年,两个以色列程序设计师:齐弗·苏拉斯基(Zeev Suraski)和安迪·古特曼斯(Andi Gutmans),重写了 PHP 的解释器,这是PHP3的前身。这两个程序员也是PHP未来20年的精神领袖。前段时间网上炒的很火的PHP联合创始人离职就是指的Zeev。但是他离职并不是放弃PHP,是因为商业问题,感兴趣你可以去PHP社区查查。

1998年,发布PHP3,用户飞涨。

2000年,发布PHP4,以Zend Engine 1.0解释器为基础。

2004年,发布PHP5,使用第二代Zend Engine 解释器。引入面向对象、PDO。

2015年12月04日,发布了PHP7,也就是目前最新的版本。使用Zend Engine3.0解释器。PHP没有6版本,就和JavaScript没有4一样。PHP7最厉害的地方是性能提高了数倍。

感兴趣可以去官网查阅更多信息。https://www.php.net/manual/zh/history.php.php

php应用场景/优缺点/同类语言对比

web开发,就是做网站的服务端。据说php是web领域使用最广泛的服务端语言。

php最大的对手应该是Java。

在某些程度上,PHP并不输于Java、C#这些主流服务端语言。比如说在开发效率和性能上,都胜过Java。

但是Java在扩展性、安全性、架构、生态等方面都胜过PHP。

导致它们的应用场景有了较为清晰的区别。

PHP更适合做一些中小型网站的敏捷开发。

Java更适合做一些大型复杂系统的开发。

但其实,随着SpringBoot这种框架的发展,PHP并没有多少优势存在了。使用PHP更多的原因,大概是历史原因或者团队技术原因。因为在现在,无论启动一个大型项目还是一个小型项目,最佳选择仍然是Java。

 

三、安装开发环境

开发php至少需要3步。

1.安装php

2.安装web服务器

3.安装开发工具

下面以window10 64位操作系统为例进行安装。mac与linux操作系统大同小异。

如果你是新手,请和我一起做。

1.安装php

进入php官方下载页面:https://windows.php.net/download

1.安装对应系统版本的Visual C ++ Redistributable依赖。

 

安装过程全部点击下一步即可,安装完成后电脑需要重启。

2.选择VC15 x64 Non Thread Safe 的zip包下载。

3.下载后解压,将解压后的文件夹内的php.ini-development文件改名为php.ini。

4.将路径添加到系统环境变量的PATH中。

完成上面4部操作,在cmd中输入命令php -v出现版本号证明安装成功。

2.安装web服务器

php比较主流的服务器有很多,如:nginxapache。可以单独安装服务器,也可以使用服务器组件。

服务器组件是个什么概念呢?简单来说

php比较主流的服务器组件有xampp,这里为了简单,选择安装xampp。

安装xammp非常简单,进入官网,选择对应的平台,安装步骤全部选择下一步即可。

安装完成后,启动程序。会看到这个界面。

xampp已经把这些service的配置默认配置好了,点击start就可以运行对应的service,我这里使用的是apache。

正常情况下,apache服务启动成功会监听80端口(http)和443端口(https),从浏览器输入http://localhost即可看到对应的默认页面。

但也可能会出现一些异常。

比如我在启动的过程中,因为80端口和443端口被其他软件所占用导致启动失败。可以通过点击config来修改httpd.conf和httpd-ssl.conf文件中的Listen即可。

如果出现一些其他问题,请自行解决。

apache服务器的默认根目录是在xampp安装路径中的htdocs目录下。如果你想修改为其他目录,可以在config中修改DocumentRoot和Directory。

3.安装开发工具

这一步不是很重要,但我还是讲一下吧。

专业的开发工具有PhpStormEclipse for PHP

不是很专业的开发工具可以选择vscode,甚至sublime也可以。

上面提到的这几种开发工具,除了PhpStorm以外全部都是免费的,可以按照你的习惯选择,比如Java程序员使用Eclipse,前端程序员使用vscode。

但我个人不建议你去使用破解的开发工具,这关乎到一个程序员的价值观问题。

但如果你和我一样,都是刚接触PHP的话,建议你使用比较专业的工具。由于我是JetBrains全家桶用户,所以选择的是PhpStorm。

如果你不是付费用户,也没关系。JetBrains的软件都有一个30天试用期。

打开JetBrains的PhpStorm官网,点击Download now,下载。

安装步骤全部选择下一步即可。PhpStorm会自动找到在Path中的PHP路径,所以不需要手动指定。

至此,最小开发环境已搭建完成。

 

四、初体验

我们可以创建一个项目体验一下。

选择new project,会出现一个弹窗,默认选择的项目类型是PHP Empty Project。

项目名默认是untitled,修改成一个正常的项目名。

点击create,项目创建完成。

新项目的文件夹是空白的,new -> php file,起名index。

apache服务器会默认寻找文件夹下名为index.php的文件。如果不存在会找index.html文件。如果都不存在,就会返回403。

这个配置在apache的httpd.conf中可以修改,在httpd.conf中你能找到这么一段配置。

<IfModule dir_module>
  DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
                  default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
                  home.php home.pl home.cgi home.asp home.shtml home.html home.htm
</IfModule>

DirectoryIndex后面自左向右的顺序就是apache寻找文件入口的顺序。

创建一个Hello,world程序

在index.php中写点内容。这里只是初体验,不用在乎它们在做什么,直接copy过去也行。

<?php
echo 'hello, php';

在浏览器中打开http://localhost/day0/,看到页面显示一个hello,php字样就代表成功了。

异常

这一步最可能出现的情况就是403或者404。

403的原因很可能是你的项目不在apache服务器的DocumentRoot下面,导致权限不足。解决的办法就是把项目放到DocumentRoot指定的文件夹下。

404的原因是项目是在DocumentRoot下面,但apache找不到这个路径,可能是你输错了。或者index.php不存在。

 

五、总结

简单介绍了PHP,了解了PHP背景和前景。

搭建了开发环境,并做了hello,php程序,为后面正式学习做好准备。

猜你喜欢

转载自www.cnblogs.com/luzhenqian/p/11405265.html