この記事の内容は2016年9月現在のものです。
新しい言語を学ぶときに確認することにインスパイヤされて。
セットアップ方法
バージョンについて
2016年9月現在のPHPの現行安定版は7.0系。学習用途および新しいプロジェクトを開始するときには7系の最新版を利用すること。古い保守版として5.6系があるが、こちらは既存のプロジェクトが7系対応してない場合に選ぶこと。
macOS(OS X)
brew tap homebrew/dupes
brew tap homebrew/versions
brew tap homebrew/homebrew-php
# PHP 7.0 (Apache抜き・phpdbg入り)
brew install php70 --with-phpdbg --without-apache
# よく利用されるモジュール
brew install php70-intl php70-ast
# デバッグ用 (任意)
brew install php70-xdebug php70-timecop
APT(Debian GNU/Linux, Ubuntu)
UbuntuはXenial(16.04LTS)以降、Debianは次期版(Stretch, 2017年頃リリース?)以降でPHP7が標準インストールされる。
sudo apt install php php-intl php-xdebug php-ast php-readline
Yum(CentOS, Fedoraなど)
簡単!CentOS 7.1にPHP7.0をさくっとyum installする方法 · DQNEO起業日記を参照のこと。
Windows
公式の実行バイナリ配布はPHP For Windowsにある。また、XAMPPといふ統合パッケージもある。
しかし現実のPHPサービスはもっぱらLinuxやFreeBSDなどのUNIX系のOSで動作するので、WindowsにXAMPPでがんばるよりもVagrantを使ってLinuxを動かした方が良い。
Vagrant + VirtualBox
開発用の仮想環境を作る。WindowsやMacのマシンでもLinuxが動かせる。
phpbrew
phpbrew/phpbrew #INSTALLに従ってphpbrew
コマンドをインストール。
phpbrew install 7.0 +default +intl
madumlao/phpenv + php-build
anyenv + phpenv + php-build が便利すぎる件を参照。riywo/anyenv: all in one for **envでまとめて導入できる。
パッケージ(ライブラリ)マネージャーの使用方法
PHP標準添付のPEARとコミュニティベースのComposerがある。
Composer
Introduction - Composerに従ってインストール。Packagistでパッケージの検索。
composer require xxxxx/yyyyy
でプロジェクト内に依存パッケージのインストール。composer global require xxxxx/yyyyy
でプロジェクトに依存しないインストール。
Packagist.jp
packagist.orgのミラーサイトであるPackagist.JPを利用することで、日本からではComposerが遅い問題を緩和できる。詳しくは@Hirakuの光遅い問題を克服してcomposerを10倍速くした話 - Mercari Engineering Blogを参照。
PEAR
PEARはPHP標準のリポジトリ/パッケージ管理ツールだが、現在はほとんど利用されない。
REPL(対話シェル)
現在はPsySHが主流。
インストール方法などはPHPを「シェル化」する [psy/psysh] - 超PHPerになろうに書いた。
Webサーバー
伝統的にはApacheにインストールする方法が利用されてきた。
しかしローカルマシンで開発する際などにはわざわざApacheのようなサーバーをインストール/設定する必要はなく、ビルトインウェブサーバーで簡易的な開発をすることができる。
エディタの設定
PHPファイルの標準的な拡張子は.php
。最近のお作法では.class.php
とかは流行ってない。
Emacs
EmacsにはPHP用の編集モードは標準添付されてない。その代りejmr/php-modeが活溌に開発されてる。
Vim
標準でPHPに対応。
詳細な設定などはVimでPHP開発環境を作成 - Qiitaを参照。
PhpStorm
IntelliJ IDEA系列のPHP専用IDE。有償。PhpStorm | サムライズムなどで購入。年間サブスクリプションで、継続するとお安くなるしくみ。
VisualStudio Code
PhpStormほどじゃないけど、標準設定でそこそこいい感じ。ただし型推論やオブジェクトのメソッド名やプロパティ補完はない。
Eclipse (PDT)
PDT: Eclipse PHP Development Toolsと呼ばれるPHP開発用の環境がある。オブジェクトのメソッド名の補完が機能する。
動作にはJavaが必要で、java.comから入手できる。brew cask install java
でもインストールできる。あなたとジャバ。
NetBeans
機能についてはNetBeans IDE - PHP開発を参照。メソッドやプロパティの補完など機能する。
NetBeans IDE 8.1ではPHP 5.6までの対応なので注意 PHP 7対応のNetBeans IDE 8.2 Release Informationが2016年10月3日にリリースされた。
Eclipseと同様にJavaが必要で、java.comから入手できる。brew cask install java
でもインストールできる。あなたとジャバ。
実際のコードを書く
基本的な文法
書籍でおすすめできるのはいまのところあまりない。
テストコードの書き方
- PHPUnit - xUnit系。定番中の定番
- phpspec - BDD
- Codeception - 複合的なテスティングフレームワーク
- Peridot - BDD
情報リソース
言語やライブラリのリポジトリへのアクセス方法を確認する
PHPマニュアル
PHPマニュアルの日本語は、おそらく英語版の次くらゐにメンテナンスされてるので読まない手はない。
Awesome PHP
定番ライブラリとか情報源のまとめ。
PHP: The Right Way
PHPのベストプラクティス集。中級者以上は必読。
PHPのタイムライン - 大チェッカー
PHPに関する雑多な記事のフィード
そのほか
- PHP internalsのRFCやMLをウォッチする - Qiita
- PHP7で変わること - hnwの日記 - PHP7での変更点のまとめ