cosian.com

Laravel入門(1)

2019-07-25

system

Laravel入門(1)

■プロジェクトの作成
コマンドプロンプトでcomposerを使って作成

composer create-project laravel/laravel CMS2 --prefer-dist


※CMS2の部分がプロジェクト名になるので、任意のプロジェクト名にする


■データベースの設定
先にプロジェクトで仕様するデータベースを作成しておく
プロジェクトフォルダ直下の.envファイルにデータベースの設定情報を編集する(8~13行目)

  1. DB_CONNECTION=mysql
  2. DB_HOST=127.0.0.1
  3. DB_PORT=3306
  4. DB_DATABASE=cms2
  5. DB_USERNAME=*********
  6. DB_PASSWORD=*********

config/database.php
も同じように編集しておく
今回はMySQLを使うので、編集箇所はMySQLの部分のみ

  • 'mysql' => [
  • 'driver' => 'mysql',
  • 'host' => env('DB_HOST', '127.0.0.1'),
  • 'port' => env('DB_PORT', '3306'),
  • 'database' => env('DB_DATABASE', 'cms2'),
  • 'username' => env('DB_USERNAME', '**********'),
  • 'password' => env('DB_PASSWORD', '**********'),
  • 'unix_socket' => env('DB_SOCKET', ''),
  • 'charset' => 'utf8mb4',
  • 'collation' => 'utf8mb4_unicode_ci',
  • 'prefix' => '',
  • 'strict' => false,
  • 'engine' => null,
  • ],

  • MySQLのstrictモードにするとInsertがうまくいかなかったので、falseに変更しています。MySQLの設定次第かな?


    ■確認
    コマンドプロンプトでプロジェクトフォルダに移動

    cd CMS2

    PHPの仮想サーバを立ち上げ
    php artisan serve


    ブラウザで
    http://localhost:8000/
    にアクセスし、画面が表示されれば成功


    ■ルーティング
    Laravelをはじめ、多くのフレームワークが「ルーティング」という機能を持っている。

    通常の場合はフォルダ名 ファイル名の指定でURLを決める
    http://hogehoge.jp/hoge/index.html
    hogehoge.jpというドメインの領域にhogeフォルダを作成し、その中にindex.htmlを入れると上記のURLで表示される。
    また、index.htmlやindex.phpなどはApacheに初期ファイルという認識をさせることで省略することもできる。

    Laravelの場合はルーティングという機能があり、上記のような方法でのファイル表示は行わない。
    routes/web.php
    が初期ルートファイルになっており、この中に記述されている内容で画面を表示する。

    1. Route::get('/', function () {
    2. return view('welcome');
    3. });


    プロジェクトを作成したばかりの記述は上記のとおり。
    /(つまりlocalhost:8000)にアクセスしたときにview('welcome')なので、welcom.blade.phpを呼び出すという内容になる。
    welcom.blade.phpは
    resources/views
    の中に格納されている。また、Laravelの場合はbladeというテンプレートエンジンを利用している。
    テンプレートエンジンとは表示画面にPHPをスクリプトとして記述する際に、簡潔に記述できるようにするための仕組みという理解で差し支えないと思う。

    ルーティングに話を戻す。
    表示画面、管理画面ともに機能を作成し、ブラウザで表示させるためにはルーティングの設定が必要になり、基本的にはweb.phpに記述していく。
    記述方法は以下のようになる。

    Route::get( アドレス , 関数等 );

    ルーティングは、これから開発していく中で何度も出てくるので、都度説明していく。
    今回は概念のみ。


    ■MVCアーキテクチャ
    LaravelはMVCアーキテクチャという仕組みを採用している。
    MVCとは
    Model(モデル)
    View(ビュー)
    Controller(コントローラ)
    の頭文字になる。

    Modelはデータベースとの処理を行う部分になる
    Viewは画面表示部分になる
    Controllerはプログラム制御を行う部分になる

    このように明確に処理する箇所を分けることで、どこに何があるかということが明確になる。


    ■コントローラの作成
    プログラムの心臓部になるコントローラの作成を行う。
    コマンドプロンプトに以下のように入力することでコントローラが作成される

    php artisan make:controller コントローラ名

    今回はHelloControllerという名前のコントローラを作成する。
    コントローラは
    app/Http/Controller
    にファイルが作成されます。

    初期に記述されている内容は以下になる。

    1. namespace App\Http\Controllers;
    2. use Illuminate\Http\Request;
    3. class HelloController extends Controller
    4. {
    5. //
    6. }


    上2行は名前空間の指定とuse文でよく使うクラスを呼び出している。
    クラスの定義部分でアクションを追加していくことになる。

    ルーティングの理解を深めるために、簡単な処理を書いてみる。

    1. class HelloController extends Controller
    2. {
    3. public function index() {
    4. return '

      これが表示されたら成功

      ';
    5. }
    6. }


    クラス定義部分にindexというアクションを記述する。

    次にルーティングを行うweb.phpに以下のように記述する。

    Route::get('/', 'HelloController@index');


    第二引数の@以降がクラスのアクション名になる。
    これで
    http://localhost:8000/
    にアクセスするとHelloControllerのindexアクションが表示される。


    今回はここまで。

    コメントを書く
    コメント
    お名前