PHPのSlimフレームワークを試してみる

Published: 2016年10月2日 by tomsato

概要

PHPのフレームワークとしては
CakePHP、CodeIgniter、Symfonyなどがあるが今回はSlimを使ってみる

特徴としては機能数が少ない分シンプルなので小規模のアプリケーション開発に向いている

準備

環境

$ cat /etc/redhat-release
CentOS release 6.8 (Final)
$ php -v
PHP 5.6.26 (cli) (built: Sep 15 2016 14:57:05)

まずはcomposerの準備

// composer install
$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

スケルトンからサンプル・アプリケーションを作成する

$ composer create-project slim/slim-skeleton my-app
$ cd my-app

timezoneを設定しないとエラーが出るので修正する

$ sudo cp /etc/php.ini /etc/php.ini.org
$ sudo vim /etc/php.ini
// 差分確認
$ diff /etc/php.ini /etc/php.ini.org
889c889
< date.timezone = "Asia/Tokyo"
---
> ;date.timezone =

これだけで準備完了

画面確認

$ composer start
> php -S 0.0.0.0:8080 -t public public/index.php

http://{ipアドレス}:8080/
にアクセスする
slim01
http://{ipアドレス}:8080/hoge
にアクセスした場合は表示が少し変わる
slim02

ルーティングについて

$ cat src/routes.php
<?php
// Routes

$app->get('/[{name}]', function ($request, $response, $args) {
    // Sample log message
    $this->logger->info("Slim-Skeleton '/' route");

    // Render index view
    return $this->renderer->render($response, 'index.phtml', $args);
});

「http://{ipアドレス}:8080/」や「http://{ipアドレス}:8080/hoge」にアクセスが来た場合は
templates/index.phtmlのファイルを読んでいる
index.phtmlではnameがあると「Hello {name}!」としている

<?php if (isset($name)) : ?>
            <h2>Hello <?= htmlspecialchars($name); ?>!</h2>
        <?php else: ?>
            <p>Try <a href="http://www.slimframework.com">SlimFramework</a>
        <?php endif; ?>

コメントを書く

※ 個別に返信が必要な時のみご記入ください

※ Emailは公開されません

※ 承認されると名前・コメントが下記に表示されます

コメント一覧

最近の投稿

ビジュアルリグレッションテストについてまとめ、ネットで調べると数多くのライブラリがありどれがどんな立ち位置なのか全体像がわかりずらかったのでどんな種類があるのか入門の入門としてまとめます、またPlaywrightを使って実際に触ってみました

社内ツールなどの超小規模なAPIをGolangで実装する際にフレームワークを使うべきかを、実際にnet/httpを使った実装とフレームワークを使った実装を比較することでどれだけ優位性があるかを見ていきたいと思います。今回はフレームワークにはシンプルで使いやすそうなEchoを使うことにします。

vue-pdfを使ってNuxt.jsで作成しているアプリケーションに pdfスライドを表示させるサンプルを作成しました README.md通りに実装してもうまくいかないところがあったのでそのあたり含めてまとめます

Vue.js / Nuxt.jsにおけるログインの実装方法をまとめる Auth0やNuxt.jsのAuth Moduleとmiddlewareについて調べつつサンプルを作成することで理解を深める

コンポーネント設計について考える Atomic DesignやPresentational Component, Container Componentについてまとめつつ 自分だったらVue.js / Nuxt.jsでどういうコンポーネント設計にするかについてまとめます

カテゴリ一覧

タグ一覧