# macos
小白用戶推薦使用下載xampp的普通版本,簡單快捷高效。有經驗的用戶推薦使用安裝xampp的虛擬機版本。
>[info] 本教程將在普通模式下講解
## 普通模式
### 下載composer
官方推薦使用curl的方式下載comcoser,所以在繼續操作以前,需要確認自己的計算機已安裝了curl。
打開shell并下載composer:
```bash
panjiedeMac-Pro:~ panjie$ curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...
Composer (version 2.0.8) successfully installed to: /Users/panjie/composer.phar
Use it: php composer.phar
```
該操作依賴于網絡,在網絡不太理想的情況下會發生錯誤,比如:`Failed to decode zlib stream
`,解決的方法也很簡單:多試幾次。
移動composer:
```bash
panjiedeMac-Pro:~ panjie$ mv composer.phar /usr/local/bin/composer
```
設置國內源,加速下載:
```bash
panjiedeMac-Pro:~ panjie$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
```
>[warning] 如果你在安裝xampp前已經安裝過其它版本的php,則無需以下操作。
composer若想成功運行還需要php的支持,我們使用**快捷方式**的方法將php放到`/usr/local/bin`文件夾中。
```bash
panjiedeMac-Pro:~ panjie$ ln -s /Applications/XAMPP/bin/php /usr/local/bin/php
```
### 下載TP6
xampp中的apache有個叫`文檔根目錄`的東西,要成功的運行TP6則需要將其下載到 apache的`文檔根目錄`中。在當前xampp中其apache的`文檔根目錄`被設置為`/Applications/XAMPP/htdocs`,接下來我們進入此根目錄并將TP6下載到此目錄下:
首先進行權限的相關設定**(很重要)**,然后進入xampp的htdoc文件夾后,使Composer下載安裝TP6.
執行命令如下:
```bash
sudo chmod -R 777 /Applications/XAMPP/htdocs
cd /Applications/XAMPP/htdocs
composer create-project topthink/think=6.0.6 tp6
```
執行示例如下:
```bash
# 設置權限
panjiedeMac-Pro:~ panjie$ sudo chmod -R 777 /Applications/XAMPP/htdocs
# 進入綁定了http服務的htdocs文件夾
panjiedeMac-Pro:~ panjie$ cd /Applications/XAMPP/htdocs
# 使用composer下載tp6
panjiedeMac-Pro:htdocs panjie$ composer create-project topthink/think=6.0.6 tp6
Creating a "topthink/think=6.0.6" project at "./tp6"
Installing topthink/think (v6.0.6)
- Downloading topthink/think (v6.0.6)
......
Use the `composer fund` command to find out more!
```
### 修改權限
```bash
panjiedeMac-Pro:~ panjie$ sudo chmod -R 777 /Applications/XAMPP/htdocs/tp6
```
### Hello ThinkPHP
打開xampp,啟動apache服務后,在瀏覽器中打開:[http://localhost/tp6/public/index.php](http://localhost/tp6/public/index.php)

萬事開頭難,恭喜你成功的邁出了第一步。
## 虛擬機模式

先后啟動xampp以及其apache服務后,點擊Open Terminal,將得到一個可以操作虛擬機的shell。

在該shell下運行的一切命令都是針對虛擬機的。我們當然可以在該shell下運行一些命令從而完成虛擬機中composer的安裝。

先后啟動xampp以及其apache服務后,點擊Open Terminal,將得到一個可以操作虛擬機的shell。

>[info] todo: 小版本號為6.0.5,應該為6.0.6
### 下載Composer
在該shell下運行的一切命令都是針對虛擬機的。我們當然可以在該shell下運行一些命令從而完成虛擬機中composer的安裝。
在shell中輸入命令 `curl -sS https://getcomposer.org/installer | php`后按回車:

上述命令將為我們下載tp6所需的`Composer`。靜心等待出現所上界面,下載完成。

接下來執行`mv composer.phar /usr/local/bin/composer`,該命令的作用是將下載的文件移動到`/usr/local/bin`文件夾,并重命名為`composer`。以后我們在shell中輸入`composer`時,實際上執行就是這個文件。
### 下載TP6
#### 網絡加速
由于眾所周知的原因,在不進行加速的情況下,composer通常很難正常的運行。我們可以在shell中使用以下命令`composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/`以解決由于網絡原因造成的composer下載失敗問題。

出現該提示后輸入`yes`,然后按回車。
#### 下載
xampp中的apache有個叫`文檔根目錄`的東西,要成功的運行TP6則需要將其下載到apache的`文檔根目錄`中。在當前虛擬機中其apache的`文檔根目錄`被設置為`/opt/lampp/htdocs`,接下來我們進入此根目錄并將TP6下載到此目錄下:
1. 進入apache根目錄:輸入`cd /opt/lampp/htdocs`后回車.
2. 使用Composer下載安裝TP6的6.0.6版本至此目錄,并重新命名為`tp6`: 輸入`composer create-project topthink/think=6.0.6 tp6`回車。
>[success] 截止至當前教程撰寫時,TP6的最新版本為 6.0.6。在學習過程中,不要太糾結這個小版本號,教程中我們主要是交流一種思想。本教程學習完畢后,相信你完全有能力借助官方文檔使用最新版本的TP6來開發自己的應用。
此時將下載`ThinkPHP的6.0.6版本`至當前的`tp6`文件夾。下載過程中打印的日志部分如下:
```shell
root@debian:/opt/lampp/htdocs# composer create-project topthink/think=6.0.6 tp6
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Continue as root/super user [yes]? yes
Creating a "topthink/think=6.0.6" project at "./tp6"
Installing topthink/think (v6.0.6)
...
Updating dependencies
Lock file operations: 15 installs, 0 updates, 0 removals
- Locking league/flysystem (1.1.3)
....
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 15 installs, 0 updates, 0 removals
- Downloading psr/cache (1.0.1)
- Downloading league/mime-type-detection (1.5.1)
....
12 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
> @php think service:discover
Succeed!
> @php think vendor:publish
Succeed!
6 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
```
>[info] 我們在此并沒有使用官方提供的`php think run`的運行方式。
#### Hello ThinkPHP

點擊Go to Application將自動打開瀏覽器。

比如我此時打開的地址為:`http://192.168.64.2/dashboard/`,則將`dashboard`替換為`tp6/public/index.php`,即:`http://192.168.64.2/tp6/public/index.php`。

在瀏覽器中訪問`http://192.168.64.2/tp6/public/index.php`出現如上界面,TP6安裝成功!
>[warning] 注意:你打的地址可能并不以192.168.64.2打頭,那么此時你不能照抄教程中的地址。而將192.168.64.2換成你的。
### 發生了什么
composer是一款管理PHP軟件依賴工具(Composer is a tool for dependency management in PHP.),相當于我們電腦上運行的`軟件管家`。在沒有軟件管家以前,一個新的系統我們需要手動的安裝各種軟件,負責任的說這很麻煩、很費心。自從有了軟件管家,安裝軟件變成了一件非常輕構的事件。
> 吐嘈百度:雖然我們可愛的小超同學已經入職百度有10個年頭了,但還是不得不吐嘈一下。往往在下載一些軟件時,百度總會把一些牛馬不相關的垃圾軟件推送給用戶。這電腦越用越慢,百度絕對起了很大的作用。
同樣的, PHP下也有很多的軟件(包),tp6就是其中的一個。composer就是PHP下的軟件管家,我們可以通過composer來快速的完成tp6的下載安裝。
本節中我們使用了curl命令來下載到了一個composer,然后將其移動到了特定的位置,以使其能夠在虛擬的任意位置輸入`composer`時都不會報`命令未找到`的異常。
目錄`/opt/lampp/htdocs`則是apache這個商鋪的`貨架`。想讓顧客能夠查看到,則需要將商品上線到`/opt/lampp/htdocs`這個`貨架`上。上貨后apache提供根據貨品位置、名稱來訪問貨口的規則,所以最終我們通過`http://192.168.64.2/tp6/public/`來訪問到了特定的商品,該商品即為tp6展現給我們的歡迎信息。
### 修改權限
由于虛擬機liunx的權限限制,我們在編寫代碼前首先需要對文件夾權限進行修改。

打開shell后輸入`chmod 777 -R /opt/lampp/htdocs/tp6/`后回車。

權限修改完畢。
- 序言
- 第一章 Hello World
- 1.1 運行環境
- 1.1.1 windows
- 1.1.2 macos
- 1.1.3 ubuntu
- 1.2 Hello ThinkPHP
- 1.2.1 windows
- 1.2.2 macos
- 1.2.3 ubuntu
- 2.3 Hello World
- 第二章 教師管理
- 2.1 數據庫初始化
- 2.2 CRUD之 R 讀取數據
- 1 數據流
- 2.2.2 連接數據庫
- 2.2.3 直接讀取數據之DB
- 2.2.4 間接讀取數據之模型
- 2.2.5 顯示數據之原始文案
- 2.2.6 單引號與雙引號
- 2.2.7 顯示數據之視圖
- 2.2.8 模板語法
- 2.2.9 使用bootstrap美化界面
- 2.3 CRUD之 C 增加數據
- 2.3.1 MCA默認路由