macにhomebrewを入れてphpやphalconをセットアップ完了するまで

## mac localにphpをインストールする

環境としては、
php7.2
phalcon3.4

※php7.3の場合は、と書こうと思いましたがごちゃごちゃするので別記事に書きました。
(2019/09/24更新）
https://qiita.com/f_uto/items/6d5850a0c9a0b557137a


```
brew install php@7.2
```

でphp 7.2をインストール

```
php -v
```

にて7.1の場合は、リンクを削除し7.2をリンクする

```
brew unlink php@7.1
brew link php@7.2
```

このとき、

```
echo 'export PATH="/usr/local/opt/php@7.2/bin:$PATH"' >> ~/.bash_profile
```

というメッセージが出てくると思うので、それをそのまま実行する。

いったんターミナルを閉じて開き直して

```
php -v
PHP 7.2.22 (cli) (built: Sep 14 2019 18:36:32) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.22, Copyright (c) 1999-2018, by Zend Technologies
```

となっていればOK

あとは、Phalcon

```
brew tap tigerstrikemedia/homebrew-phalconphp
```

```command
brew install php72-phalcon
```

```
/usr/local/Cellar/php72-phalcon/3.4.2
```

ここにインストールされたと出たので以下がパスとなる

```
/usr/local/Cellar/php72-phalcon/3.4.2/phalcon.so
```

これをphp.ini に設定する。
composerを使うときにPHPのCLI(コマンドライン）でもチェックしているみたいなので、
php.iniの場所を確認する。

```
php --info | grep php.ini
```

たぶんここ
/usr/local/etc/php/7.2/php.ini

なので以下の感じで追加がかんたんかな。

```
echo "extension=/usr/local/Cellar/php72-phalcon/3.4.2/phalcon.so" > /usr/local/etc/php/7.2/conf.d/phalcon.ini
```

update 2019/09/20
以下、半年前に書いた記事。


** サーバー関連はMAMPPが便利なのでMAMPPで一気にインストールとする。Phalconはhomebrewでインストール。**
**XAMPPのVMでないほうも便利なのでXAMPPで一気にインストールとする。Phalconはhomebrewでインストール。**

**2019-07-19 現在のところ、下記のtigerstrikemediaさんのgitも古くなってるのでphalconからリンクが消えてる。いろいろ変わってきてるので修正するより別に投稿かきますね

**2019-01-06現在、MacOS Mojaveだと、Homebrew/phpが使えなくなってしまってます。
https://docs.phalconphp.com/en/3.3/installation
ここによると

```
brew tap tigerstrikemedia/homebrew-phalconphp
```

ここで提供しているよってことで
php7.2だから


```command
brew install php72-phalcon
```

これで、無事phalcon3.4.2(最新版）が手に入ります。
が、困ったことに依存関係がPHP7.3となってます。
これは困った困った。MAMPPは、PHP7.2。現在、最新版でも7.2までなので、Phalconを認識しない。

そこで、３つの方法が考えられるので（１つはおまけ）
１つめ。MAMPPにPHP7.3を追加する。追加できそうです（やったことない。。。）
２つめ。XAMPPのMac版。これはPHP7.3に対応している。
３つめ。おまけみたなもんですが、他のMacユーザからphalcon.soをもらう。

phalcon7.2と7.3の違いはそれほど大きくなさそうなので、php7.3でもよさそう。主にphp8に向けて非推奨となる関数などをnoticeしてくれるみたいです。

ということで、またなにかアップデートがありましたら追記します。
以上、2019-01-06 追記分

---------------------

# MAMPのインストール
インストールは、MAMPのホームページから。
https://www.mamp.info/en/
ダウンロード。最新のものでOK。
https://www.mamp.info/en/downloads/


#homebrewをインストール

homebrewのホームページはこちら
https://brew.sh/index_ja.html

homebrewのホームページに「インストール」というところに、以下のように書いてあるのでその通り実行する。
正しくは上記サイトからちゃんと調べてね。
**rootでなくてユーザで実行すること**

```bash:command
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
```

### インストールの確認

```bash:command
$ brew -v

Homebrew 1.5.12
Homebrew/homebrew-core (git revision 1841; last commit 2018-03-25)
```

バージョン番号が表示されればOK

## phalconをインストール

現在のphpバージョンを確認する
ちなみに、以下は間違った考え方ね。

```bash:command
$ php -v
```

これだとコマンドラインのphpのバージョンを確認していることになって、webサーバーが扱っているphpと同じかどうかはわからない。Linuxだと同じと思っていいんだけど、開発環境だと複数のバージョンが共存かのうだったりするので、ちゃんとウェブサーバーが指定しているphpバージョンを確認する必要がある。
どうやって確認するかは、かんたん。phpinfo()の結果をみたらすぐわかる。

MAMPを動かせるようにしているので、MAMPを起動させ、「Open WebStart Page」を表示する。上部メニューにPHPINFOがあるので開いてみる。
以下の表示を確認する。

最上部に***PHP Version 7.2.1***と確認できた。

またphp.iniのファイルの場所も確認しておくこと。あとで設定するので。

|||
|:--|:--|
| Loaded Configuration File | /Applications/MAMP/bin/php/php7.2.1/conf/php.ini |

### phalconのインストール
ｐｈｐ7.2.1なので、php72となる。以下のように指定してインストール。

```bash:command
$ brew tap homebrew/php
$ brew install php72 php72-phalcon
```

参考までに、インストール先は以下の模様

```
/usr/local/Cellar/php72-phalcon/3.3.0/phalcon.so
```

> インストール先を探すにはfindコマンドで探してみよう！
> `sudo find / -name phalcon.so`

### phalcon.soをphp.iniで設定する。
> （ソースオブジェクト：windowsでいうとDLL）

```ini:php.ini
extension = /usr/local/Cellar/php72-phalcon/3.3.0/phalcon.so
```

この記述を追加したらサーバーを再起動。
再起動はMAMPなので、パネルから「停止」「開始」するだけでOK

上記で示した通り、phpinfoのページを確認し、以下の記述を確認できたらOK。


**phalcon**
**Web framework delivered as a C-extension for PHP**

| | |
|:--|:--|
| phalcon | **enabled** |
| Author | Phalcon Team and contributors |
| Version | 3.3.0 |
| Build Date | Jan 5 2018 15:19:30 |
| Powered by Zephir | Version 0.10.5-04eb3288bf |