LoginSignup
1
0

More than 3 years have passed since last update.

Slim3 Framework×slim-skeleton不使用×twigでプロジェクトを作成する(2. DocumentRoot変更~Twigを使用)

Last updated at Posted at 2020-07-09

はじめに

Slim3 Framework×slim-skeleton不使用×twigでプロジェクトを作成する
(1. プロジェクト作成~各種設定)
の続きです。

前提

下記記事で構築した環境を前提とします。

  • Windows10にVagrantをを入れてCentOS7をインストールしよう(123456)
  • ローカルでLAMP環境を構築しよう(01234
  • CentOS7にComposerをインストールしよう

  • 私家版 Slim Framework チュートリアル (123456)
    @nunulkさんのチュートリアルを一通り。
    ここで作成したDBを使いまわします。

  • Slim3 Framework×slim-skeleton不使用×twigでプロジェクトを作成する(1

手順

1. 専用のユーザーを作成
2. プロジェクトディレクトリを作成・slim3インストール
3. 各種設定
4. DocumentRootを変更&表示確認
5. Twigを使ってみよう
6. Loggingしてみよう
7. Controllerを作成しよう
8. PDOを使用してデータベースに接続しよう
9. @nunulkさんのチュートリアルで作成したチケット管理システムをtwigを使って再現しよう

やってみよう

今回の記事では、手順4~5を行います。

4. DocumentRootを変更&表示確認

userをrootに切り替えて行います。

設定ファイル/etc/httpd/conf/httpd.confの該当部分を下記のように書き換えます。

/etc/httpd/conf/httpd.conf
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/home/slimuser/projects/slim/SampleApplication/public"

#
# Relax access to content within /var/www.
#
<Directory "/home/slimuser/projects/slim/SampleApplication/public">
    ##AllowOverride None
    AllowOverride All
    ##Allow open access:
    Require all granted
</Directory>

次に以下のコマンドでApacheを再起動します。

systemctl restart httpd

以下のコマンドでプロジェクトフォルダにパーミッション付与します。

chown apache:apache -R /home/slimuser/projects/SampleApplication/*
chmod 777 -R /home/slimuser/projects/SampleApplication/*

以下のURLを開いて、前回の記事で行った動作確認と同じ動作が確認出来たらOKです。

http://192.168.33.90/
http://192.168.33.90/hello/world

5. Twigを使ってみよう

Twigをインストール

以下のコマンドでtwigをインストールします。

composer require slim/twig-view 2.*

settings.phpに設定を追加

config/settings.phpに以下のように追記します。

config/settings.php
$settings['twig'] = [
  'path' => $settings['root'] . '/templates',
  'cache_enabled' => true,
  'cache_path' => $settings['temp'] . '/twig-cache'
];

container.phpに設定を追加

config/container.phpに以下のように追記します。
use ~;部分はこれからも増えますので、$container = $app->getContainer();の上にまとめて記述してください。

config/container.php
use Slim\Views\Twig;

$container[Twig::class] = function (Container $container) {
  $settings = $container->get('settings');
  $viewPath = $settings['twig']['path'];

  $twig = new Twig($viewPath, [
    'cache' => $settings['twig']['cache_enabled'] ? $settings['twig']['cache_path'] : false
  ]);

  $loader = $twig->getLoader();
  $loader->addPath($settings['public'], 'public');

  $router = $container->get('router');
  $uri = \Slim\Http\Uri::createFromEnvironment($container->get('environment'));
  $twig->addExtension(new \Slim\Views\TwigExtension($router, $uri));

  return $twig;
};

twigファイルを作成

templates/time.twigを作成します。
現在時刻が表示されるだけの簡潔なものです。

templates/time.twig
<?DOCTYPE html>
<html>
  <head>
    <base href="{{ base_url() }}" />
  </head>
  <body>
    Current time:{{ now }}
  </body>
</html>

routes.phpにルートを追加

config/routes.phpに以下のように追記します。
use ~;部分はこれからも増えますので、上のほうにまとめて記述してください。

config/routes.php
use Slim\Http\Request;
use Slim\Http\Response;
use Slim\Views\Twig;

$app->get('/time', function (Request $request, Response $response) {
    $viewData = [
        'now' => date('Y-m-d H:i:s')
    ];

    return $this->get(Twig::class)->render($response, 'time.twig', $viewData);
});

動作確認

以下のURLを開いてCurrent time:2020-07-09 05:32:24のように現在時刻が表示されればOKです。

http://192.168.33.90/time

参考サイト

Creating your first Slim 3 Framework Application

関連ページ

Windows10にVagrantをを入れてCentOS7をインストールしよう

1. VagrantインストールからVagrantfileを設置まで
2. 仮想マシンの操作
3. WinSCP、Tera Termに秘密鍵でログイン
4. WinSCP、Tera Termにrootユーザーでパスワードログイン
5. zip/unzipをインストール
6. Vagrantにて仮想環境を配布

ローカルでLAMP環境を構築しよう

0. 事前準備
1. Apacheをインストール
2. MySQLをインストール
3. PHPをインストール
4. ファイアウォールとか停止する

Composerをインストール

CentOS7にComposerをインストールしよう

PHP Slim3フレームワークのサンプルアプリを作ろう

2-1. First Application Walkthrough Getting Set Upまで

Apache

DocumentRootを変更しよう

Slim3 Framework×slim-skeleton不使用×twigでプロジェクトを作成する

1. プロジェクト作成~各種設定
2. DocumentRoot変更~Twigを使用
3. LoggingとController
4.PDO使用
5. チケット管理システムを再現➀
6. チケット管理システムを再現➁

1
0
2

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