私家版 Slim Framework チュートリアル (1) 〜 特徴と準備編
この記事について
PHP のマイクロフレームワークのひとつである、Slim Framework ですが、チュートリアルがいまいちイケてないので、お題を流用しつつ、初学者にももう少し分かりやすくなるよう、アレンジしてみようという試みです。
長くなりそうなので、何回かに分けます。
概要
今回は Slim の特徴の紹介とインストールしてから動作させるまでをやります。
環境
- Slim: 3.9.2
- PHP: 7.1.12
PHP のバージョンは 5.5 以上が必要となっていますが、本記事では 7.1 でいかせていただきます。
公式サイト
Slim Framework - Slim Framework
本家チュートリアルはこちらです。
First Application Walkthrough - Slim Framework
このチュートリアルでは、バグトラッキングシステムを想定して、チケット(不具合報告票)に対する CRUD 処理(作成、表示、更新、削除)を実装していきます。
1. Slim の特徴
Slim は "マイクロフレームワーク" と呼ばれる、必要最低限の機能のみを提供し、その分速度が出るようにデザインされた軽量なフレームワークで、Symfony や Laravel のような、機能全部乗せで巨大な、いわゆるフルスタックフレームワークとは、導入の目的や用途も異なる場合が多いです。
つくろうとするアプリケーションがそれほど複雑でなく、同時アクセス数が比較的多く見込まれる場合には、マイクロフレームワークが適しているケースが多いです。
1.1. 速度
下記のベンチマークの比較を見ると、上から9番目(22個中)で、速度的には中くらい、といったところでしょうか(関係ないけど、1位の Siler が爆速ですね)。
1.1. PSR への準拠
PSR とは、"PHP Standards Recommendations" の略で、PHP でウェブアプリケーションをつくる際の標準的な枠組みを決め、それを文書化、普及させていこうという活動と成果物です。
PHP Standards Recommendations - PHP-FIG
これまで、コーディングスタイルとかオートロードの仕組みやロガーインタフェースなどを定めてきていて、様々なライブラリが、これらの標準に合わせようとしています(Slim Framework もそのひとつです)。
Slim では、以下の仕組みを、PSR 準拠で実装しています。
仕組み | PSR | 実装 |
---|---|---|
コンテナ | PSR-11 | Pimple |
ログ | PSR-3 | Monolog |
HTTPリクエストおよびレスポンス | PSR-7 | Slim |
Pimple と Monolog は外部パッケージです。詳しい説明は省きますが、興味のある方は調べてみてください。
Pimple
Pimple - A simple PHP Dependency Injection Container
Monolog
1.3. 分離されたテンプレートエンジン
PHP-View というテンプレートエンジンが公式から提供されています。
API サーバーの場合は、クライアントに JSON データを返すことになるため、テンプレートエンジンは不要になるはずですので、Slim 本体とは別パッケージで提供されています。
ウェブページを返すアプリケーションをつくる場合はこちらのパッケージが必要です(今回のチュートリアルでは初めから入っているため、追加の必要はありません)。
GitHub - slimphp/PHP-View: A Simple PHP Renderer for Slim 3 (or any other PSR-7 project)
Twig などの他のテンプレートエンジンも使えるようですが、私は試してないので割愛します。
2. インストール
前置きはこのくらいにして、インストールから動作確認までを一気にやってしまいましょう。
composer が必要です。インストールされていなければ、公式サイトの記述を参考にインストールしてください。
アプリケーションを作成したいディレクトリにて、下記のコマンドを実行します。
$ composer create-project slim/slim-skeleton Tutorial-First-Application
@ohara5555 さんからのコメントにもありますが、現在は v4 が最新になっており、上記のコマンドだと 4 系がインストールされてしまうので、下記のようにバージョン指定してインストールしてください。
composer create-project slim/slim-skeleton:3.* Tutorial-First-Application
インストールが終わると、以下のようなファイル群が出来上がります(vendor 以下にインストールされる依存パッケージも多くないのでぜんぶ載せます)。
$ tree -L 2 .
.
├── CONTRIBUTING.md
├── README.md
├── composer.json
├── composer.lock
├── docker-compose.yml
├── logs
│ └── README.md
├── phpunit.xml
├── public
│ └── index.php
├── src
│ ├── dependencies.php
│ ├── middleware.php
│ ├── routes.php
│ └── settings.php
├── templates
│ └── index.phtml
├── tests
│ └── Functional
└── vendor
├── autoload.php
├── bin
├── composer
├── container-interop
├── doctrine
├── monolog
├── myclabs
├── nikic
├── phpdocumentor
├── phpspec
├── phpunit
├── pimple
├── psr
├── sebastian
├── slim
├── symfony
└── webmozart
では、アプリケーションを動かしてみましょう。
ターミナルから以下のコマンドを実行してください。
$ php -S localhost:8080 -t public
または、
$ composer start
でもOKです。
composer.json で以下のようにコマンドが指定してあり、それを呼び出しているだけなので、上のコマンドと下のコマンドは同じもの(index.php は省略可)になります。
{
~略~
"scripts": {
"start": "php -S localhost:8080 -t public index.php",
"test": "phpunit"
}
}
ブラウザにて http://localhost:8080/
を開いてください。
開けましたでしょうか。
次回から、チケット管理アプリケーションの実装をしていきます。
Author And Source
この問題について(私家版 Slim Framework チュートリアル (1) 〜 特徴と準備編), 我々は、より多くの情報をここで見つけました https://qiita.com/nunulk/items/4b5c15f13ade660cafbc著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .