摄影师:Negative Space,连结:Pexels
哈啰,我们又见面了,最近因为工作的关係,需要用到 PHP
(其实是因为我最近在各种后端面试 ,有些考试要用到,只好来恶补一下XD),那么今天就来记录一下我的 PHP
之旅,类此够~
1. PHP
是什么?
PHP 是一种程式语言,常被用来 架网站,相信即使不是后端工程师或软体人,也会多多少少听过 PHP
这个名词,因为知名的部落格软体 Wordpress 就是用 PHP
写的,架 Wordpress
时,也需要用到 phpMyAdmin 的资料库管理工具,由此可知,是个曝光度很高的程式语言呢~
PHP 的 Wiki 页面
PHP
这个程式语言,在我的印象中(是个人立场,不代表任何人的意见),是个比较老派的语言,跟 Java
有得比,事实上,在发展历史中,也是大概 1995
年左右的产物,也就是我刚出生的时候?,然后,就在我开始学习后端之后,才知道有 Laravel
这个近期崛起的后端框架,这个框架就是使用 PHP
,才让 PHP
又红起来,但不要问我其他的,我也只是在 Hello World
等级的人而已 QQ
2. 怎么开始用 PHP
?
到 PHP
官网看,现在更新到 7.2.30
、7.3.17
和 7.4.5
,而且最后更新还是一个月前的事而已,是个还很活跃的程式语言 ~
PHP 官方网站
2.1 在 macOS
安装 PHP
这相对 Windows
用户来讲,是比较简单的安装方法,可以参考 (2019) macOS 上安装 PHP 语言 | OA Wu's Blog,简单来说只要一行,$ sudo brew install php
就可以安装 homebrew
上的最新版本啰,可以用 $ php -v
来检查有没有安装成功,也可以看到你安装的 php
是哪一个版本哦。
2.2 在 Windows 10
安装 PHP
Windows
可以直接在官网下载你想要的 PHP
版本,但还要额外修改一些设定(像是 php.ini
等等),有点麻烦,我自己也没有很熟,可以参考 (2017) 在 win10 上安装与设定 PHP ( IIS) | 未老人的手扎
3. 所以 PHP
Hello World 呢?
别急,这不就来了吗,先用你惯用的文字编辑器打下:
<?phpecho "Hello World, my dear PHP";?>
存档为 helloworld.php
,接下来就是要执行了,打开你的 Terminal
或 cmd
,切换到你存放 helloworld.php
的资料夹,执行 $ php helloworld.php
,就会跑出
Hello World, my dear PHP
在此,你已经成功写下第一支 PHP
程式,但,这应该不是你想要的吧 ?!
4. 可是我想看到 PHP
在网页上执行啊!
没错,相信大家写 PHP
大部分就是为了要架伺服器用的吧,这时候可不只是写个 php
档案就能让其他人能使用,你还需要架设 Web Server
(你可能听过 Apache
、Nginx
之类的名词),来把你的 PHP
code 放到网页上执行。
你可以把 Web server
和 PHP
code 的关係,想像成下图,使用者(client
) 使用自己的装置(电脑、手机等),透过 http
或 https
的协定,将请求(request
)传送到我们的 Web server
,然后 Web server
判断使用者想要的是哪个路径或页面,再由 Web server
去把直译后的 php code 转成 html
档,再回传(response
) 给使用者的浏览器,来渲染(render
) 成你在浏览器看到的网页样子。
在这里,你有几种选择来执行你的 PHP
程式到网页上,第一种是「自己安装 Apache
等等的 Web server」,优点是你可以把 Apache
抽换成 Nginx
或其他的 Web Server,缺点是你要自己设定、维护和管理;第二种是使用 PHP
框架,像是 Laravel
可以直接帮你把 PHP
code 跑起来,开发很方便;第三种是「安装懒人包 XAMPP
」,就算不使用框架,也可以把纯 PHP
code 放到网页上。
针对第一种方法,可以参考 (2016) 在Mac设定Apache、PHP、MySQL | Medium,这样的做法,比较适合对 Apache、PHP、MySQL 都熟的人,才比较不会出错,不然只是想要简单写个 PHP
而已,还要先去了解 Apache
、MySQL
的运作跟指令,实在是很烦。
第二种方法,框架总是把细节包的好好的,开发者可以很专注在 开发 这件事情上,相对的坏处就是,被保护的太好了,实际上的运作细节可以完全不知道,长期来看,安捏恩汤,但如果你已经了解整个运作原理,使用框架来加速开发没什么不好的。
4.1 使用 XAMPP
比较纯、简单
我只是想要简单跑个 PHP
而已,还没有想要碰到框架,但要自己维护 apache
的服务实在有点麻烦,所以我在这边选择使用 XAMPP,你可以把 XAMPP
想成一种 PHP
的网页开发懒人包,XAMPP
的每个字母都有意思,其中 X
我猜是 mixed 的意思,而 A
代表 Apache
,M
代表 MariaDB
,然后两个是 PHP
和 Perl
,看到这里应该能想像懒人包的概念了,也就是把网页开发需要的东西都包给你。
使用 XAMPP
的话,只要简单点个 Start
按钮、再到 Volumes
点 mount
按钮,整个服务就跑起来了,再点 Go to Application
按钮,就有 XAMPP
的 Hello World
页面。
使用 XAMPP
,我这边的预设是 http://192.168.64.2 这个网址,看这个 IP 也知道这是 local IP,也就是说把这串网址,传给你朋友,他会很傻眼 XD,因为他连不到。
4.2 那要怎么在 XAMPP
,执行我自己的 PHP
code ?
在 XAMPP
的 Volumes
页面,点 Explore
,然后找到 htdocs
资料夹
htdocs
就是你的 PHP
source code 的专案资料夹了,ht
代表 host
(主机) 的意思,docs
代表 documents
(文件),点进去!你会发现 index.php
,这就是现在你的网页的首页,里面长这样:
<?phpif (!empty($_SERVER['HTTPS']) && ('on' == $_SERVER['HTTPS'])) {$uri = 'https://';} else {$uri = 'http://';}$uri .= $_SERVER['HTTP_HOST'];header('Location: '.$uri.'/dashboard/');exit;?>Something is wrong with the XAMPP installation :-(
我们就直接把里面改成这样:
<?phpecho "<h1>Hello World, PHP with XAMPP</h1>";echo "只是想跑个 php 这么麻烦!";?>
ps. 在 php
内,可以写 html
的语法 tag 唷~
所以再回到刚点击 Go to Application
的那个网页,重新整理之后
就可以看到我们自己写的 PHP
程式拉 ~
4.3 那么如果想创一个页面是 http://192.168.64.2/hello_world/ 呢?
在使用 XAMPP
的情况下,routing
这件事是需要自己手动来的 XD,你可以透过在 htdocs/
这个资料夹下,再创一个叫做 hello_world
的资料夹,然后在 hello_world
的资料夹中,再新增一个叫做 index.php
的档。
所以现在的目录架构是这样的:
`htdocs/`├ `index.php`├ ...└ `hello_world/` └ `index.php`
如果说 hello_world/index.php
是这样的:
<?phpecho "<h1>这是第二层的 Hello World</h1>";?>
跑起来就是这样
总结
相信你看到这里,会跟我有一样的感受,怎么跑个 PHP
这么麻烦啊!但其实麻烦的不在 PHP
,而是「透过网页执行 PHP
」,这件事情才是麻烦,相同原理,如果今天我不用 Django
的话,我想要单纯透过网页执行 Python
也是一样的麻烦,重点在于 Web Server
的观念理解,还有 Web Server
的操作,但不得不说,框架真的太方便了。
好的,讲这么多,都还没开始 PHP
语法呢 ~
我是 RS,这是我的 不做怎么知道系列 文章,我们 下次见。
喜欢我的文章吗? 赶快来看看我都发了什么文章吧:我的文章目录欢迎阅读我的上一篇: [原来后端要知道] 怎么实作前后端分离? #Vue.js #Django #WebAPI欢迎阅读我的下一篇: [我所不知道的技术细节] 如何保障你辛苦写的程式码? #opensource #license #github