6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ElixirAdvent Calendar 2024

Day 9

KinoPHP で Livebook から PHP を実行する

Last updated at Posted at 2024-11-14

はじめに

KinoPHP を使うと、 Livebook で PHP が実行できるようになります

実装したノートブックはこちら

事前準備

実行環境上に PHP をインストールしている必要があります

Ubuntu の場合、 apt install php でインストールしましょう

macOS の場合、 brew install phpasdf 等でインストールしてください

セットアップ

セットアップセルで KinoPHP をインストールします

Mix.install([
  {:kino_php, "~> 0.2"}
])

PHP の実行

KinoPHP.eval に PHP で書かれた処理を渡すと、第2引数の関数に実行結果が返ってきます

KinoPHP.eval 自体の出力は終了コード(正常なら 0)なので、 Kino.nothing で表示しないようにしています

"""
<?php
echo 'Hello, PHP!';
"""
|> KinoPHP.eval(fn output ->
  output
  |> Kino.Text.new()
  |> Kino.render()
end)

Kino.nothing()

実行結果

スクリーンショット 2024-11-14 9.08.29.png

第2引数の関数は PHP からの標準出力を都度受け取ります

フレームを用意しておいて、 KinoPHP.append_to_frame で標準出力をストリーミングできます

frame = Kino.Frame.new() |> Kino.render()

"""
<?php

for ($i = 0; $i < 5; $i++) {

  fwrite(STDOUT, "count $i \n");

  sleep(1);
}

"""
|> KinoPHP.eval(fn output ->
  KinoPHP.append_to_frame(frame, output)
end)

Kino.nothing()

実行している様子

kino_php.gif

スマートセル

KinoPHP をインストールすると、スマートセルに "PHP Script" が追加されます

スクリーンショット 2024-11-14 9.14.12.png

"PHP Script" セルを使うと、簡単に PHP を実行できます

スクリーンショット 2024-11-14 9.15.15.png

まとめ

KinoPHP を使うことで、 Livebook 上で PHP を実行することができました

PHP 入門を Livebook で学ぶ、なんてこともアリですね

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?