1
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?

More than 3 years have passed since last update.

Slim-Skeletonを使ってslim4.0を構築しするだけ

Posted at

個人的な習作に関するメモ

前提

  • windows10(hyper-v有効)
    • docker install済み
    • composer install済み

step1 とりあえずプロジェクト構築

php composer.phar create-project slim/slim-skeleton:dev-master [my-app-name]

まずはこれを動かしてプロジェクトを作りたい。このままだと使えないので

composer create-project slim/slim-skeleton slim-auth

と変更して実行。win内のphpが8系だったので怒られた。(何故か7系縛り)

適当にdockerで環境を立ち上げる

docker run --mount type=bind,src=${PWD},dst=/var/www --name php --rm -it php:7 bash

これだとcomposerが動かないので雑に https://getcomposer.org/download/ これを実行し、composerが動く環境を用意。

コンテナ内部で下記実行。途中色々ないと怒られたのでついでにそれも入れる。

cd /var/www
apt-get update
apt-get install -y git zip unzip
php composer.phar create-project slim/slim-skeleton slim-auth

で、OK。スマートにやる方法は絶対あるけど、ググルのめんどいのでとりあえずこんな感じで。

exitで抜けて作業終了。

step2 slim動かす

作ったディレクトリにdocker-compose.ymlがあるので、それを少し改造する。

最新のslim4.7ではphp8で動くっぽいので、php8にする。とりあえずそれだけ。

docker-compose up -d すれば http://localhost:8080/にアクセスできるようになる。

これでOK。

step3 ディレクトリデザインを見ていく。

ADRパターン (Action Domain Responder) というのに沿って作られてるらしい。MVCを触ることが多かったので少し困惑したが、慣れればそんなに問題じゃない。

とりあえず、ぱっと見た感じ

ドメイン層はRepositoryのInterfaceとか、そこから取得できるデータのEntityクラスを持っている。
インフラストラクチャ層では、ドメイン層で持つInterfaceの実装をやってる。
アプリケーション層は...めっちゃ広い。その他。みたいな感じ。

個人的に、Interfaceクラスの末尾にInterfaceと書いてないのが混乱の元だったので、そこは後でどうにかしたい。

総括

laravel以外のフレームワークを選ぶとした何がいいかなー、特に深い思い入れはないけどDIとかrouteの設定は似てるやつがいいなと思って見つけたのがslim。

せっかくだからメモ的にQiitaにまとめようと思ったのがこの記事を書いたきっかけです。

Windowsでphpを使っていてslimを使おうとしているn人の開発者の役に立てば幸いです。

では。

end

1
0
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
1
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?