Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PeachPieを使ってPHPを.NETで動かしてみた

くろきり
March 25, 2023
65

 PeachPieを使ってPHPを.NETで動かしてみた

PHPerKaigi2023の登壇資料です

くろきり

March 25, 2023
Tweet

Transcript

  1. PeachPieを使ってPHPを
    .NETで動かしてみた
    PHPerKaigi 2023
    @9rokirishima

    View Slide

  2. 自己紹介
    ● 緒方 大佑(おがた だいすけ)
    ● Twitter:くろきり(@9rokirishima)
    ● 所属
    ○ Growfit株式会社
    ○ Webエンジニア(PHPer)
    ● この後仕事の本番作業もあるので色んな意味で緊張しています。

    View Slide

  3. 公式サイト:https://www.peachpie.io/
    GitHub:https://github.com/peachpiecompiler/peachpie
    ● .NETランタイム上でPHPを実行するためのオープンソースツール
    ○ PHPをILコード(.NETの中間言語)へコンパイル
    ● PHPを.NETで動かすだけでなくC#とPHPの相互運用が可能

    View Slide

  4. .NETとは
    ● マイクロソフトが開発したマルチプラットフォーム向けの開発者フ
    レームワーク
    ● 主にC#とセットで使われている
    ● .Net Frameworkや.Net Coreなど用途に応じて使い分けられてい
    たが現在は.NETに統合

    View Slide

  5. 相互運用って?

    View Slide

  6. C#からPHPを呼ぶ

    View Slide

  7. PHPからC#を呼ぶ

    View Slide

  8. PHPからC#を呼ぶ
    PHPスクリプトの状態では参照が効かない
    ※実行する時はコンパイルするのでこの状態で
    エラーが出ていてもちゃんと動く

    View Slide

  9. 使えるプロジェクトテンプレート

    View Slide

  10. 例えば
    webのプロジェクトを作成してphpinfoを表示する

    View Slide

  11. 例えば
    構成
    C#はWebサーバーの立ち上げを行う
    PHPは実際のコンテンツ

    View Slide

  12. 例えば
    ・Website.msbuildproj
    クラスライブラリとして出力される

    View Slide

  13. コンソールアプリ以外はPHPで作られたコードは
    ライブラリとして出力され、それをC#側で実行する仕組み

    View Slide

  14. クラスライブラリ化することで
    様々な.Netプロジェクトに組み込める!

    View Slide

  15. つまづいた所

    View Slide

  16. ※今回の開発端末はMacです

    View Slide

  17. ● VisualStudio for MacはMarketPlaceが使えないため、PeachPie
    のプラグインがインストールできない
    ○ PeachPieが提供する機能を使う場合は結構辛い
    ● 開発中PHPからC#呼ぶ時参照できない
    辛い点

    View Slide

  18. ● .NETのクラスライブラリとして実装することで様々なプロジェクトで
    PHPのコードを動かすことができる
    ● 違う環境でPHPを動かすのは面白い!
    まとめ

    View Slide

  19. ご清聴ありがとうございました!

    View Slide