PHPマイクロフレームワークSilexでつくるシンプルWebサイト

PHPのフレームワークSilex

小規模サイトなら充分

PHPのフレームワークとは言えば、CakePHP、Symfony。とくにCakePHPは多くのレンタルサーバーで簡単にインストールできるようになっていたりします。

近年のトレンドでは、圧倒的にSymfonyの方が注目されているようです。

しかしながら、(CakePHPにも言えることですが)大~中規模サイトならまだしも、小規模サイトの場合、ちょっとオーバースペック気味です。
その点Symfonyから派生したミニフレームワークとも言えるSilexは、学習コストも低く、導入も簡単なのでオススメです。

PHPマイクロフレームワーク Silex 公式

ComposerからSilexをダウンロード

SilexとTwigはセットだと思ってる

PHPのパッケージ管理ツールであるComposerをつかってインストールします。

ついでにHTMLテンプレートエンジンのTwigも使いますので、一緒に落としておきましょう。SilexとTwigは、まあセットみたいなものです。(自分の中では)

# Silexはバージョン2をダウンロード
$ composer require silex/silex:~2.0 twig/twig

単純なサイトならコマンド側の操作はこれでほぼ終わりです。あとは、indexファイルやviewファイル(.twig)を作成するのみです。

中身をつくる

index.php

公式ドキュメント通りで全く問題なしです。

<?php
require_once __DIR__.'/../vendor/autoload.php';

$app = new Silex\Application;

// Routingなど
$app->get('/', function() use ($app) {
  return 'Hello, World!!';
});

// Silexアプリケーションの実行
$app->run();
?>

PHP(5.4.0以上)のビルトインサーバーを起ち上げて、指定したホストにアクセスすれば「Hello, World!!」が表示されます。

# php -S でビルトインサーバーの起動
# ctrl + c で終了

$ php -S localhost:8000 -t [ルートディレクトリ]

TwigでViewをつくる

view用のファイルをtwigを使ってつくります。

{# layout.twig #}
{# ← twigでは、この間がコメントアウトされ、htmlにレンダリングされない → #}
<!DOCTYPE html>
<html lang="ja">
  <head>
    <!-- head情報を記述 -->
  </head>
  <body>
    {% block body %}{% endblock %}
  </body>
</html>

{# index.twig #}
{% extends 'layout.twig' %}

{% block body %}
  <h1>こんにちは、{{ name }}さん!</h1>
  <p>indexファイルが表示されています。</p>
{% endblock %}

Twigファイルを表示するためindex.phpを書き換える

index.phpにtwigを読み込ませます。

$app->register(new Silex\Provider\TwigServiceProvider(), array(
  'twig.path' => 'viewファイルの保存ディレクトリ'
));

$app->get('/', function() use ($app) {
  return $app['twig']->render('index.twig', array(
    'name' => 'たろう'
  ));
});

$app->run();

サーバーをたちあげてアクセスすると、
「こんにちは、たろうさん!」
と、表示されます。

シンプルなWebサイトなら、このように簡単に作成できます。
また、データベースを利用して動的なページを表示したり、ログインフォームを作ったりなどもSilexに元から組み込まれている機能を使うことで作成可能です。

過去記事: PHPミニフレームワークSilex(2.0)でログイン機能をつくる

↑ ちょっと順番が前後してしまいましたが。汗

(Visited 219 times, 1 visits today)

“PHPマイクロフレームワークSilexでつくるシンプルWebサイト” への1件の返信

コメントは受け付けていません。