Qstairs

現役AIベンチャーCTOの知見、画像認識(人工知能、Deep Learning)を中心とした技術ノウハウをアップしていきます

広告

【Web】Laravelにまで手を付け始めました...

f:id:qstairs:20160601221351j:plain

はじめに

これまで、何度かWebアプリのフレームワークである
Ruby on RailsDjango
に関して使い方や実装方法を紹介してきました。

そして、なんと
Laravelにまで手を付け始めました。

知り合いのCTOの方にWebアプリの仕事のご依頼をいただき、
そのアプリがLaravelで動いているということでただいま勉強中です。

ということで、Laravelの環境構築からちょっと動かすところまでを紹介します。
#Ruby on RailsDjangoといったフレームワークを使用したことがある人向けです。

環境構築

今回はWindows10にインストールしているVirtualboxCentOSの6.8を構築し、
そこにPHPとLaravelをインストールしています。

インストールした感想は、
正直言ってわけわからない

というのもLaravelは人気があるようで、
インターネット上に構築方法が転がっているのですが、
どのバージョンでリリースしているのか明確に記載していなかったり、
構築方法の途中でフェードアウトしているサイトがあったり...

そんな中で私が参考にしたサイトは以下になります。
※といっても色々試しながら構築したので不十分かもしれません...

CentOSにPHP5.6をインストールする方法はこちら

CentOSにLaravelをインストールする方法はこちら

ちょっと動かす

Requestクラスの基本(1/5):初心者のためのLaravel入門を参考に
Laravel5.4での動かし方を記載します。


Web画面や処理を追加する際の肝になるのが
Djangoで言うところの「urls.py」に相当する「view.php」です。
ここに「Route::get」や「Route::post」を記載していきます。

// Laravel 5.4
Route::get('/helo/index', 'HeloController@getIndex');
Route::post('/helo/index', 'HeloController@postIndex');

上記の「HeloController」がファイル名で
「getIndex」が処理(メソッド)名になります。
これは「app/Controllers/HeloController.php」のようにファイルを用意し、
以下のように記述します。

<?php
namespace App\Http\Controllers;
 
use Illuminate\Http\Request;
 
use App\Http\Requests;
use App\Http\Controllers\Controller;
 
class HeloController extends Controller
{
    public function getIndex()
    {
        return view('helo', ['message' => 'Hello!']);
    }
    public function postIndex(Request $request)
    {
        $res = "you typed: " . $request->input('str');
        return view('helo', ['message' => $res]);
    }
}

return view('helo', ['message' => 'Hello!']);の
「'helo'」は画面処理のファイル名で
「resource/views/helo.blade.php」でファイルを作成することで紐づきます。
また、ファイル名に「.blade」を追加した目的は、
テンプレートエンジンを使えるようにするためです。
#下記の「{{ csrf_field() }}」がそれにあたります。

helo.blade.phpファイルの中身は以下になります。

<!doctype html>
<html>
<head>
    <title>Sample</title>
    <style>
    body { color:gray; }
    h1 { font-size:18pt; font-weight:bold; }
    </style>
</head>
<body>
<?php echo csrf_field(); ?>
    <h1>Sample</h1>
    <p><?php echo $message; ?></p>
    <form method="post" action="/helo/index">
      {{ csrf_field() }}
        <input type="text" name="str">
        <input type="submit">
    </form>
</body>

以上により、
localhost:8000/helo/indexへのアクセス
画面内の入力フォームの処理と結果の表示までが実現できます。


最後に

Laravelはバージョンによってフォルダ構成が大きく異なるので注意が必要です。
インターネットで調べる際はバージョンを確認しないとわけわからないことになります。

例えばLaravel5.1では存在したroutes.php
Laravel5.4ではroutesフォルダが設けられapi.phpやview.phpで分けられています。

5.1→Requestクラスの基本(1/5):初心者のためのLaravel入門
5.4→Laravel 5.4 (3)ルーティング基礎(認証) | ほぼWebエンジニアリング


これからさらに勉強していきます。

以上

広告