ITエンジニアのための勉強会・イベントレポート情報メディア

とりあえずやってみる!FuelPHP第5回〜まずは、やっぱり「Hello World!」〜
skill

とりあえずやってみる!
FuelPHP第5回〜まずは、やっぱり「Hello World!」〜

2018.01.16

 
  • このエントリーをはてなブックマークに追加

今回は、FuelPHPを実際に動かしてみたいと思います。プログラミングのはじまりといえば、やっぱり「Hello World!」ですよね。というわけで、「Hello World!」を2種類の方法で表示してみましょう。

えとうさちこ

Hello World!

方法その1:コントローラだけで「Hello World!」

APPPATH/classes/controllerに「hello1.php」というファイルを新規に作成し、以下のコードを記述してください。

<?php

class Controller_Hello1 extends Controller
{
    public function action_index()
    {
        return ‘Hello World!’;
    }
}

ファイルができたら、以下のURLにアクセスしてみましょう。
http://localhost/myproject/hello1/index

上記のように表示されれば成功です。
先ほどのURLからリクエストされたコントローラのaction_index()メソッドが文字列を返し、その文字列がブラウザに表示されました。
※ URLにあるコントローラのaction_index()を呼び出すindexは省略可能です(デフォルト)。

方法その2:コントローラとビューを使って「Hello World!」

まずはビューのファイルから作成しましょう。
APPPATH/viewsに「hello.php」というファイルを新規作成し、以下を記述してください。

<!DOCTYPE html>
<html>
  <head>
    <meta charset=”utf-8”>
    <title>テスト</title>
  </head>
  <body>
    <h1>Hello World!</h1>
  </body>
</html>

FuelPHPのデフォルトのビューは、特定のテンプレート言語を使わずにPHPを使います。ですから、作成するのはphpファイルですが、今回は「Hello World!」と表示するだけなので、中身は単純なHTMLになっています。

次にコントローラを用意します。
APPPATH/classes/ controllerに「hello2.php」というファイルを新規に作成し、以下のコードを記述してください。

<?php

class Controller_Hello2 extends Controller
{
    public function action_index()
    {
        return View::forge(‘hello’);
    }
}

ファイルができたら、以下のURLにアクセスしてみましょう。
http://localhost/myproject/hello2/index

上記のように表示されれば成功です。
先ほどのURLからリクエストされたコントローラのaction_index()メソッドがビューファイル(APPPATH/views/hello.php)を呼び出し、ビューファイルの内容がブラウザに表示されました。

ブラウザから呼び出されるのは、あくまでもコントローラで、ビューはコントローラに呼び出されるというところがポイントです。

FuelPHPのURL構造

ページが表示される仕組み

「Hello World!」を表示してみて、URLとコントローラの関係性がわかってきたでしょうか?
FuelPHPのURLは、基本的に次のような構造になっています。
http://www.example.com/(コントローラ)/(メソッド)/(パラメータ1)/(パラメータ2)/……

FuelPHPではURLをもとに、どのコントローラのどのメソッドを呼び出すかを決定しています。

  • ●最初のURIセグメント…実行されるコントローラ名
  • ●2番目のセグメント…実行されるコントローラのメソッド名
  • ●3番目以降のセグメント…メソッドに渡される引数

コントローラだけでHello World!を表示したときは、以下にアクセスしました。
http://localhost/myproject/hello1/index

これは、hello1というコントローラのaction_index()メソッドを実行するという意味でした。
※後にコントローラについて詳しく説明する回でもご紹介しますが、メソッドには接頭辞に「action_」がつきます。

同様に、コントローラとビューで「Hello World!」を表示したときは、以下にアクセスしました。
http://localhost/myproject/hello2/index

これは、hello2というコントローラのaction_index()メソッドを実行するという意味で、このaction_index()メソッドがhelloビューを呼び出したのでビューが表示されたということです。

パラメータがある場合の例もみてみましょう。
先ほどの、APPPATH/classes/controller/hello1.phpのaction_index()メソッドに続けて、次のメソッドを追加してみましょう。

public function action_paramtest($param1 = null, $param2 = null)
{
    return '複数のパラメータを受け取りました。<br>'
         . '1つめは、『'. $param1. '』<br>2つめは、『'. $param2. '』';
}

そして、以下のURLにアクセスしてみましょう。
http://localhost/myproject/hello1/paramtest/dog/cat

パラメータで渡した「dog」と「cat」がセットされて表示されていることがわかります。「dog」と「cat」の部分を別の文字列に変えれば、結果も変わることが確認できます。ぜひ試してみてください。

FuelPHPのデフォルトのトップページ

インストール直後のトップページは以下のURLで確認できたことを覚えていますでしょうか。
http://localhost/myproject

このURLではどのコントローラが呼び出されているのかわかりませんよね。
これには「第4回環境と設定」のルーティングの設定が関係しています。
あらためてルーティングの設定ファイル(APPPATH/config/routes.php)をみてみましょう。

return array( 
  ‘_root_’ => ‘welcome/index’, 
  ‘_404_’ => ‘welcome/404', 
);

このとおり予約されたルートで、_root_がデフォルトのトップページ、すなわちURLが指定されていないときのルートです。
呼び出されているのはwelcomeというコントローラのaction_index()メソッドだとわかります。デフォルトのトップページを変更したい場合は、ここを任意に書き換えればOKです。

今回は、「Hello World!」を通じてコントローラとビューの関係性、そしてFuelPHPのURL構造を確認しました。次回は、コントローラとビューに、モデルを含めたFuelPHPのMVCについて説明していきたいと思います。

原稿: えとうさちこ
SEとしてJavaでのASP開発を経て、現在は主にPHPでのWEBアプリ開発を行うWEBエンジニア。フロントエンドもサーバサイドも好き。インフラ勉強中。今後はRubyにも手を出すつもり。PCに向かっている以外はだいたいテニスに没頭。おかげさまで肩こり知らず。ブログやってます。
http://sachips.byeto.jp

とりあえずやってみる!FuelPHP第5回〜まずは、やっぱり「Hello World!」〜

この記事はどうでしたか?

おすすめの記事

キャリアを考える

BACK TO TOP ∧

FOLLOW