2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【PHP】マイナーフレームワーク「Flow」を試してみる~環境構築編~

Last updated at Posted at 2023-11-14

初めに

PHPの「Flow」というフレームワークをご存じですか?
おそらくこのフレームワークを知っている人は少ないと思います。自分もその一人でした。

先日たまたまFlowを触る機会があり、とりあえずQuickstartを試してみるかと思ったのですが

  • 公式ドキュメントの手順が省略されていて、PHP初心者には難しい
  • マイナーすぎて参考資料が出てこない

ということに苦しめられ、なかなか環境構築が進みませんでした。

github-copilotに助けられながらなんとか完了することができたので、今回は公式ドキュメントのQuickstartのソースを元に環境構築方法をまとめてみました!

Flowとは

Flowとはflownative社が出しているオープンソースのPHPフレームワークです。

ドメイン駆動設計(DDD)を中心原理として設計されたフレームワークであり、DDDを満たすための機能を多く提供しているらしいです(自分もまだ試せてないですが)。

また、Railsのように、flowというコマンドを実行することでクラス作成やキャッシュクリアなど様々な操作がコマンドでできるという特徴があります。

公式ドキュメントはこちら。

環境構築

ということで、Flowを環境構築していきます。
公式ドキュメントのQuickstartを立ち上げていきます。

環境

  • OS:Windows11 Pro
  • PHP:8.1.25
  • Flow:8.3.5
  • composer:2.6.5

1.PHPのインストール

PHP公式サイトからPHPを落としてきます。
Thread SafeNon Thread Safeの二つがありますが、自分は前者をインストールしました。

インストールが完了したらパスを通しておきましょう。

$ php -v
PHP 8.1.25 (cli) (built: Oct 25 2023 08:06:57) (ZTS Visual C++ 2019 x64)
Copyright (c) The PHP Group
Zend Engine v4.1.25, Copyright (c) Zend Technologies

以下のサイトを参考にしました。

2.composerのインストール

composerとは、PHPにおけるライブラリ管理ツールです。
Flowをダウンロードする際に利用するため、ここでインストールしておきます。

こちらのダウンロードページからComposer-Setup.exeをダウンロードし、インストールを実施してださい。

$ composer -V
Composer version 2.6.5 2023-10-06 10:11:52

以下のサイトを参考にしました。

3.FlowのQuickstart用ソースコードをインストール

composerを用いて、以下のコマンドでQuickstartのソースコードをダウンロードします。

$ composer create-project --keep-vcs neos/flow-base-distribution Quickstart
Creating a "neos/flow-base-distribution" project at "./Quickstart"
Installing neos/flow-base-distribution (8.3.5)
  - Syncing neos/flow-base-distribution (8.3.5) into cache


~中略~


> Neos\Flow\Composer\InstallerScripts::postPackageUpdateAndInstall
33 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
87 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> Neos\Flow\Composer\InstallerScripts::postUpdateAndInstall
No security vulnerability advisories found.

ダウンロードできました。

ディレクトリ構成は以下のような感じです。

Quickstart
    ├ bin/
    ├ Build/
    ├ Configuration/
    ├ Data/
    ├ DistributionPackages/
    ├ Packages/
    |    ├ Application/
    |    ├ Framework/
    |    └ Libraries/
    ├ Web/
    ├ .editorconfig
    ├ .gitignore
    ├ composer.json
    ├ composer.lock
    ├ flow
    ├ flow.bat
    └ Readme.rst

Packages/Frameworkの中にFWのソースが入っています。
Packages/Applicationの中には動作確認使用するに使用するソースが入っています。

前述したflowコマンドはプロジェクト直下のflowというファイルが実行ファイルになっています。なので、コマンドの実行はプロジェクト直下で行う必要があります。

4.Setting.yamlの作成

プロジェクト直下のConfigurationフォルダの中にあるSettings.yaml.exampleをコピーし、同フォルダにSettings.yamlを作成しましょう。
その際、Neos -> core -> phpBinaryPathAndFilenameのコメントアウトを解除し、「1.PHPのインストール」で落としてきたphp.exeのパスに変更します。

Settings.yaml
Neos:
  Flow:
    persistence:
      backendOptions:
        driver: 'pdo_mysql'  # use pdo_pgsql for PostgreSQL
        charset: 'utf8mb4'   # change to utf8 when using PostgreSQL
        host: '127.0.0.1'    # adjust to your database host
    mvc:
      routes:
        'Neos.Flow': TRUE
    core:
      phpBinaryPathAndFilename: 'C:/php-8.1.25/php.exe'

Settings.yamlにてMySQLの設定が記述されていますが、今回は使用しません。
コメントアウトしてもしなくても結果が変わらないため、今回はそのままとしてます。
気になる場合はコメントアウトしましょう。

5.php.iniファイルの修正

php.iniファイルを確認し、;extension=mysqli;extension=pdo_mysqlのコメントアウトを解除します。
これにより、phpのmysqlとPDO_MySQLの拡張機能を有効にすることができます。

QuickstartではMySQLの環境構築は不要です。
ですが、Flowを立ち上げる際にFlowがMySQLのドライバを探しているようで、この設定をしてないとドライバを見つけられずエラーになります。

6.サーバを立ち上げる

プロジェクト直下で以下のflowコマンドを実行し、ローカルホストでサーバを立ち上げます。

コマンドが実行できない場合、PowerShellを管理者権限で開いて実行してみてください。

$ ./flow server:run
Server running. Please go to http://127.0.0.1:8081 to browse the application.
[Tue Nov 14 21:46:43 2023] PHP 8.1.25 Development Server (http://127.0.0.1:8081) started

サーバが立ち上がったら、http://127.0.0.1:8081 にアクセスしてみましょう。
以下のような画面が表示されたら、環境構築成功です!

image.png

・・・結構モダンな画面ですね、驚きました。
ちなみに、公式ドキュメントに書いてあるWelcomeページはもっと簡素なものでした。もしかしたら手順が更新されていないのかもしれないですね。

終わりに

今回はPHPのFlowというフレームワークの環境構築を行いました。
もう少し触ってみる予定なので、また何か分かったことがあれば記事にしようと思います!

参考資料

https://flowframework.readthedocs.io/en/stable/Quickstart/index.html
https://webukatu.com/wordpress/blog/30447/
https://weblabo.oscasierra.net/php-composer-windows-install/

2
0
3

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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?