Symfony学習1【PHPフレームワーク】

この記事ではSymfonyについてできる限り簡単にざっくりと解説し、、アプリケーションを一つ完成させます。

  • 学習の予備知識として、PHPを学習していることが望ましいです
  • オブジェクト思考については都度解説を入れていきます

Symfonyとは

SymfonyとはPHPのフレームワークです。

フレームワークで様々な機能を使用することができ、開発効率を上げることができます。

始めはPHPを使う方が簡単に思えますが、複雑な処理を実装するならフレームワークを使った方が簡単に実現できます。

フレームワークにはSymfonyの他にもLaravelやCakePHPなどがあり、Symfonyは海外シェアが高く、日本ではLaravelのシェアが高いです。

私の知っている限りでは、EC-CUBEで主に使われています。

私は業務でEC-CUBEを使用するため選択しましたが、SymfonyとLaravelをやって思うのは、基本は同じだと言うことです(LaravelもベースはSymfonyです)。

どれか一つ習得できれば他の習得も容易になります。

ただ、正直言って、日本語の情報が少ないので初学者が選択するのには不向きです。

特に縛りがないならLaravelをオススメします。

事前知識

Symfonyを学ぶにあたり、ざっくりと要点を掴みましょう。

Composer

Composerとはパッケージ管理ツールです。

Symfonyで使いたい機能を管理してくれるものです。

使いたい機能があればComposerで追加して使うことができ、自分で開発するより圧倒的に楽です。

これさえ理解していれば使えますが、もう少し知っておいて欲しいことがあります。

依存性解決とは

例えば、機能Aを使いたいとします。

ただし、機能Aを使うには、機能Bがないといけません。

機能B使うには機能Cが必要です。

機能C使うには機能Dが…..

こんなことをしてたら開発に入るまで大変ですよね(昔はやってました)。

この問題をComposerは自動で判断して解決してくれます。

使用するには特に気にしなくても良いので勝手にしてくれますが、裏ではこういったことをしてくれています。

オブジェクト思考とは

一言で表すのは難しいのですが、オブジェクト思考とはプログラムを使い回す仕組みです。

例えば、アンパンマン、カレーパンマン、食パンマンをプログラムで作るとします。

そこで、3人を全て一から作ると大変ですよね。

3者とも人間?のような見た目をしているので、先に人間の形をプログラミングしておけば、使いまわせそうな感じですよね。

体の色を付け加えたり、技を追加したりすればキャラクターとして使える状態のプログラムなら、後々ジャムおじさんやバタコさんのような人型キャラクターを作るときも楽に作れそうですね。

その使い回す部分をオブジェクトとして扱います

これだけわかれば十分かと思いますが、本当の意味で理解するならプログラムを組むのが一番の近道です。

MVCモデルとは

M = モデル

V = ビュー

C = コントローラー

SymfonyはMVCモデルという3つの要素で構成されます。

モデル

データベースとやりとりする

ビュー

コントローラーで行った処理を元にページを表示する

コントローラー

計算などの処理をする

かなりざっくりですが、概要は以上になります。

概要だけ掴んでプログラムを組んだ方が効率的なので、さっそく開発環境を準備しましょう。

開発環境の準備

流れとしては、下記になります。

  1. phpのバージョン確認とアップデート
  2. composerのインストール
  3. Symfonyのダウンロード
  4. ビルトインサーバー立ち上げ

phpのバージョン確認とアップデート

まずはphpのバージョンを確認しましょう。

ターミナルを立ち上げて「php -v」と入力して実行してください。

phpのバージョンが確認できます。

今回はSymfony4.4.*を使うので、phpは7.1.3より上ならOKです。

それより低い場合は、アップデートしましょう。

phpのバージョンを上げるのが面倒ならMAMPのインストールでも大丈夫です。

Composerのインストール

次にComposerをインストールします。

SymfonyはComposerでダウンロードするので必須です。

Symfonyのダウンロード

ターミナルを開いてプロジェクトを作りたい場所まで移動し、下記のコマンドを打つとプロジェクトが作成されます。

composer create-project symfony/website-skeleton symfony-app "4.4.*"

最後のsymfony-appは任意の名前でOKです。

ビルトインサーバー立ち上げ

作成したプロジェクトのトップ階層にターミナルで移動して、

ターミナルを開いてプロジェクトを作りたい場所まで移動し、下記のコマンドを打つと開発用のサーバーが立ち上がります。

php bin/console server:run

ターミナルに http:127.0.0.0.1:8000 と表示されるので、コピーしてブラウザに貼り付けます。

これでページが表示されたら成功です!

トップページの作成

開発環境が整ったので、さっそくトップページを作成しましょう。

※さっき開いていたページは実は404ページです

少し思い出して欲しいのですが、ページはコントローラーの処理を元に表示されます。

ビュー

コントローラーで行った処理を元にページを表示する

コントローラー

計算などの処理をする

ページ作成と言っても、まずはコントローラーを作ることから始めます。

ただし、これは手作業では作成しません(面倒なので)。

ターミナルでプロジェクトのトップ階層に移動して、下記のコマンドを入力します。

php bin/console make:controller

名前を聞かれるので、「HelloController」と入力しましょう。

これでコントローラーとtwigファイル(後ほど説明します)が作成されました。

この記事を書いた人

ホクト

プログラミングと嫁が好き。文系出身ながら機械メーカーで電気設計→Webがしたくて退職を決意→転職成功。電気設計で役に立つweb知識を中心に書きます。