結局PHPに手を出すハメになってしまった……
スポンサーリンク
因果という因縁というか……。
この業界にいると悪名高きPHPからは逃れられないようです。
まあ、断るということもできたんですが、立て続けにPHP案件の紹介が来るとさすがに知人の好意*1はあまり……。
PHPの思い出
学生時代に2回ぐらい赤いマンモスの表紙の本を借りたことがあるんですよ。ところが2回とも1ページも読まずに返却したのが私のPHPとの馴れ初め。
あとはPHPの動いているサーバーのチューニングとか。CakePHP 1.x の頃。
当時はAPCというモジュールをインストールすると1秒あたりに処理できるリクエスト数が倍増したり、なんというかおおおらかな時代でした*2。当時書いたのはphpinfo()
関数を呼びだけのファイルでしたけど……。
なんだかんだで月日は流れて、「Rails 使えるならいけますよ」 みたいな軽いノリに押されてPHP(というかCakePHP)のWebアプリのバグ修正を仰せつかったという話。
- 作者: David Sklar,桑村潤,廣川類,木下哲也
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/03/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
PHP 7.x 、従来ひ2倍の速さと素晴らしいじゃないですかと思いつつ、現実はPHP 5.6 ……。現実は非情である、それはそうですよね。
サポート期限来年いっぱいなんですがどうするんだろう。
Homebrew で PHP
Docker とか仮想マシン上でやろうかと思ったけど簡単な修正であればまずはシステム上にインストールしてしまうのが一番楽だった。
先にリポジトリの追加。
$ brew tap homebrew/versions $ brew tap homebrew/php
これで特定のバージョンのPHPのパッケージをインストールできるようになる。複数バージョンを共存させるツールもあるけどまずは無難に。
PythonとかRubyのことも考慮するならanyenvか。
PHP 5.6.x
$ brew install php56 $ brew install php56-intl
パッケージ名にバージョンを含めることで5.6系をインストールできる。CakePHP 3.x のためにintl
モジュール(libicu
のラッパー)をインストールしておく。
mac への PHP5.6 のインストール · GitHub
PHP 7.x
共存できないので排他になる。
PHP 7.1.x を利用する場合は、インストール済みのバージョンをアンインストールしてからバージョンに応じたパッケージをインストールする。
$ brew install php71 $ brew install php71-intl
Composer
Ruby on Rails で言うところのbundler
。CakePHPのインストールやプラグイン管理に必要。公式の手順に従ってもいいが、Homebrew でパッケージとして提供されているのでこれを使う。
$ brew install composer
事実上、必須ツール。
CakePHP 3
Rails に影響を受けたというPHPのWebフレームワーク。
バージョン指定してCakePHPをインストールする
composer のインストールが前提条件。
$ composer create-project --prefer-dist cakephp/app:3.2 myproject
myproject
は任意のプロジェクト名に置き換え。
ネタ元:composer php - CakePHP Install Specific Version - Stack Overflow
Docker と CakePHP3
intl
というモジュールが必要で、このモジュールはlibicu
を要求する。PHP公式のDockerfile の場合、docker-php-ext-install
というスクリプトが利用できるので、開発用のlibicu-dev
パッケージを追加してからPHPモジュール(extension)をインストールすればいい。
PHP公式のDockerfile の適当な箇所に下記を追加。
RUN apt-get update \ && apt-get install -y libicu-dev && docker-php-ext-install intl
参考:docker-php-ext-install intl fails · Issue #57 · docker-library/php · GitHub
そのほか
PHPメインで開発している会社をDis っていたら結局自分もPHP書くハメに……というか読むハメになった*3という話でした。
……引き寄せの法則の逆みたいな感じですか。
PHP 7.x だと良かったんだけどなあと思いつつ、CakePHP 3のチュートリアルをやる予定です。
それではまた。