コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

今日の読書感想文 ふりぺち編

中身のない読書感想文をつづっていきます。

はい、おはようございます。僕です。今日も読書感想文を書いていこうと思うのです。やはり本を読んで知識を蓄えるのすごい大事。みんなそう思うよな!

ですので本日はこれ読みます。

またそのシリーズかとか怒られそうなんですが、僕の中の怒涛のJupyterNotebook宣伝欲が飽きるまで続けます。つまり、これから何をするかお分かりですね。

そうPHPでもJupyterNotebookを書きましょう!
・ホームページ
Jupyter-PHP's Installer by Litipk
リポジトリ
GitHub - Litipk/Jupyter-PHP-Installer: An installer for Jupyter-PHP

PHPもJupyterNotebook動くって知ってしまったので、それを動かしていきますよー!もはや読書感想文を書く気が一切感じられないんですけどちゃんと100ページぐらいあるこの本全部目を通してますからね。ノートに書きながら進めるとめっちゃハイスピードで読み進めることができるのでこのやり方オススメ。

まあ、こういう話はどうでもいいんですよ。

そんなわけで準備です。必要なものが以下のやつなんですけど一部対応している最新版が7.2までしかないので、環境合わせるために XAMPP 取ってきてそれでやることにします。うちのPHP 7.4なんですよ。ドウシテ…。

  • PHP >= 7.0
  • PHP-ZMQ extension <--- こいつ
  • Jupyter Notebook installed

ZMQ
f:id:andron:20200317215714p:plain
PECL :: Package :: zmq 1.1.3 for Windows


なので遠回りですが、XAMPP を用意します。phpenv とか使える方はそちらをお使いいただくと早く済むと思います。ただ僕はWindowsユーザでしてね、phpenvみたいなやり方でも面倒そうだったんで XAMPP からPHP7.2を引っ張ってくることにしました。

f:id:andron:20200317220641p:plain
Download XAMPP

あ、そういえばComposerとpsyshが必要になるなどの情報もあったので必要な場合は各自でインストールお願いします。僕の環境ではなぜか入っていたのでなしで動くか確認できていません。
Composer
PsySH


XAMPP を落として来たら。ZMQで落としてきたlibzmq.dllを、C:\xampp\phpに入れて、php_zmq.dllをC:\xampp\php\extに入れます。そんでphp.iniにextension=php_zmq.dllの一行を追加します。XAMPPのコンパネにあるExplorerPHPいじる直下のフォルダになるので何がどこにあるか見失ったらそこのボタン押して投げ込んでおけばいいと思います。

そうしたらJupyter-PHPのサイトで落としてきたpharファイルを実行(解凍?)します。
f:id:andron:20200317222326p:plain

# 利用できるコマンドの確認
# ※ jupyter-php-installer.pharをどこに置くかはお任せします
# php ./jupyter-php-installer.phar
Available commands:
  help       Displays help for a command
  info       Shows info about installed Jupyter-PHP kernels.
  install    Installs a Jupyter-PHP kernel.
  list       Lists commands
  uninstall  Uninstalls a Jupyter-PHP kernel.
  update     Updates the installed Jupyter-PHP kernel.

# インストール
# php ./jupyter-php-installer.phar install
The Jupyter-PHP kernel has been successfully installed.

というわけで成功とかでればインストール準備できました。

確認していきます。と……、その前にphpenvとか使ってないのでPATHをXAMPPのPHPのやつに変更しておきます*1

そうしたら。こう!

f:id:andron:20200317222915p:plainf:id:andron:20200317222922p:plain
準備できました。


準備できたので書籍の中身をみていきたいと思います。内容は以下のような感じの書籍になっております。

Chapter 1 PHP最初の一歩
Chapter 2 条件によって分かれる文を学ぼう
Chapter 3 繰り返し文を学ぼう
Chapter 4 関数を作ろう
Chapter 5 Webアプリを作ろう

こんなんなのでまたChapter4まではノートで進めることができます。

んで、やってみて標準入力fgets(STDIN)の取り方がわからない。前みたいに代替案があるのかすらわからん。どうすればいいんだ……。まあいいや。とりあえず無駄にJupyter-PHPの導入方法を書いたから誰かがなんらかの策を出してくれると信じてそのまま進めることにします。今回やるにあたっての本質的な問題ではないですしね……。

$age = 30;
if(20 <= $age){
  {  
}
// Parse error: syntax error, unexpected end of file in Standard input code on line **

あとセル上だとこういったエラーが一部出ないです……。PHPは色々難儀やなあ。


f:id:andron:20200318222925p:plainf:id:andron:20200318222930p:plain
それでChapter5のアプリの方はこんな感じの干支判定ツールつくって終了って感じです。まあ、普通。


はい。JupyterNotebookの準備にめっちゃ手間取ってあんまり内容の方突っ込めてませんが、JupyterNotebookでもPHP動かせるんでこういったPHPの勉強のお供に導入してみるのなんてどうでしょう?毎回全然関係ないところで小一時間詰まってて書籍にツール、どっちのいいところも伝えられていない気もしますが環境さえ整えば書籍のコードを垂れ流しながら読み進めることができるので便利ですよ。


おわり

*1:これ忘れて小一時間詰まりましたw