作成日:2019-03-25, 更新日:2019-04-03
基本
LumenではなくLaravelをメインで使う予定なので少し突っ込んだトコまでやる。
Lumenのインストと基本同じなので、前よりは理解しやすい。
インスト手順(2019-03-25)
lumenのインストを参考にする(lumen Xamppにインスト)
▼条件
・Xamppで動作させる
・テストだから「PHP5.6.34」で使いたい→「laravel5.2」を使いたい
・「xampp\htdocs\laravel-test」とし「http://localhost/laravel-test/」としたい
▼手順1-A:インストーラーを使ってプロジェクト作成
1.Laravelのインストーラーのインスト
2.プロジェクト作成
▼手順1-B:インストーラーを使わずにプロジェクト作成(今回はコッチで作業をすすめる)
1.プロジェクト作成
▼手順2:調整してブラウザで確認
1.調整してブラウザで確認
2.Hello Worldの出力
▼Composerが必須らしい
・PHPのパッケージ管理「Composer」
手順1-A:インストーラーを使ってプロジェクト作成
1-A-1.Laravelのインストーラーのインスト
▼基本:CMDで下記実行(「C:\Users\〇〇〇\AppData\Roaming\Composer」あたりに出来る)
# composer global require "laravel/installer"
▼「xampp/composer」内に作りたい:CMDで「xampp/」にカレントを移しておく
# mkdir composer # cd composer # composer require "laravel/installer"
※「composer global require 〇〇〇」から「global」を取った「composer require 〇〇〇」
▼上記コマンド実行後、しばらく待つと下記が表示された
Using version ^2.0 for laravel/installer ./composer.json has been created Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 13 installs, 0 updates, 0 removals - Installing symfony/process (v3.4.23): Loading from cache - Installing symfony/polyfill-ctype (v1.11.0): Downloading (100%) - Installing symfony/filesystem (v3.4.23): Downloading (100%) - Installing symfony/polyfill-mbstring (v1.11.0): Downloading (100%) - Installing psr/log (1.1.0): Loading from cache - Installing symfony/debug (v3.4.23): Loading from cache - Installing symfony/console (v3.4.23): Loading from cache - Installing guzzlehttp/promises (v1.3.1): Loading from cache - Installing ralouphie/getallheaders (2.0.5): Loading from cache - Installing psr/http-message (1.0.1): Loading from cache - Installing guzzlehttp/psr7 (1.5.2): Loading from cache - Installing guzzlehttp/guzzle (6.3.3): Loading from cache - Installing laravel/installer (v2.0.1): Downloading (100%) symfony/console suggests installing symfony/event-dispatcher symfony/console suggests installing symfony/lock Writing lock file Generating autoload files
1-A-2.プロジェクト作成
▼基本:CMDで下記実行(カレントは「xampp/htdocs」に移しておく)
# laravel new 〇〇〇
※「xampp/htdocs/〇〇〇」が作られる
手順1-B:インストーラーを使わずにプロジェクト作成
今回はこっちの「インストーラーを使わずにプロジェクト作成」で進める
※lumenのインストのときの面倒なコトって、インストーラーを使ったのが原因のような気がする
1-B-1.プロジェクト作成
▼基本:CMDで下記実行(カレントは「xampp/htdocs」に移しておく)
# composer create-project --prefer-dist laravel/laravel 〇〇〇
※「xampp/htdocs/〇〇〇」が作られる
古いバージョンのLaravelでプロジェクト作成
▼laravel5.2を使う場合
# composer create-project --prefer-dist laravel/laravel 〇〇〇 "5.2.*"
手順2:調整してブラウザで確認
ひとまずこの状態で確認(「xampp/htdocs/laravel-test」で作成)
URLは「http://localhost/laravel-test/public」
2-1.調整してブラウザで確認
「http://localhost/laravel-test/public」じゃなく「http://localhost/laravel-test」にしたい。
ソースの移動
▼「xampp/htdocs/laravel-test/public」と他のファイル・フォルダを分ける
1.「src」フォルダを作成して「xampp/htdocs/laravel-test/public」以外をいれる
2.「xampp/htdocs/laravel-test/public」の中身を「xampp/htdocs/laravel-test」に移動
▼こんな感じになる
移動前 | 移動後 |
---|---|
■xampp/htdocs/laravel-test/ ├app/ ├bootstrap/ ├public/ │├index.php │├.htaccess │└略 ├.env └略 |
■xampp/htdocs/laravel-test/ ├src/ ←「/public」の中身以外をココにいれる │├app/ │├bootstrap/ │├.env │└略 ├index.php ←「/public」の中身を「xampp/htdocs/laravel-test/」直下にいれる ├.htaccess └略 |
▼「src/」の下に「.htaccess」を下記内容で作成・追加してアクセス禁止にしておく必要あり。
deny from all
※ブラウザからアクセスできない場所に配置 or アクセスできてもOKというなら必要無い
PATHの書換え
▼xampp/htdocs/laravel-test/index.php
略 //require __DIR__.'/../bootstrap/autoload.php'; require __DIR__.'/src/bootstrap/autoload.php'; 略 //$app = require_once __DIR__.'/../bootstrap/app.php'; $app = require_once __DIR__.'/src/bootstrap/app.php'; 略
▼xampp/htdocs/laravel-test/src/server.php
略 //require_once __DIR__.'/public/index.php'; require_once __DIR__.'/../index.php';
※ひょっとしたら「server.php」は削除しても問題ないかも。
ブラウザで確認
URLは「http://localhost/laravel-test/public」じゃなく「http://localhost/laravel-test」
パーミッション
・「src\bootstrap\cache」に書き込み権限が必要だそうだ。
Application Key
・「src\.env」の「APP_KEY」を設定する必要があるそうだ(「セキュリティは気にしない」っていうなら不要)
→comporserでプロジェクト作成しているなら自動で設定される
・「src\.env」が無い場合は「src\.env.example」を複製して作る
→「APP_KEY」を設定
※方法は未調査:「php artisan key:generate」で検索して調べる必要アリ
src\config\app.php:タイムゾーンなどの変更
「src\config\app.php」を確認して必要に応じて変更する
・url - 別のサーバに移すときやドメインが変わるときに変更すれば良さげ
・locale - ja(※初期値は「en」。fallback_localeは「en」のままで大丈夫(localeが見つからなかったときの言語の設定っぽい))
2-2.Hello Worldの出力
結構面倒・・・
1.ルーティングの設定
2.コントローラーの作成
3.ビューの作成
▼関係のあるファイルとディレクトリ
・src\app\Http\routes.php
・src\app\Http\Controllers
・src\resources\views
▼今回は「/hello」でアクセスがあったら「Hello World」を出力したHTML(ビュー)を表示させたい
・「/hello」は「コントローラー:HelloController」の「index」を表示
・「HTML(ビュー)」は「hello.blade.php」を表示
※「〇〇〇.blade.php」の「blade」は何を意味しているかは知らない。こういうお作法だと思う。
1.ルーティングの設定
▼「src\app\Http\routes.php」に追加
Route::get('hello', 'HelloController@index');
これで「/hello」にアクセスがあったら「コントローラー:HelloController」の「index」を表示になるハズ。
2.コントローラーの作成
・「src\app\Http\Controllers」の中に「HelloController.php」を作成
▼「src\app\Http\Controllers\Controller.php」を継承させる
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class HelloController extends Controller { public function index() { return view('hello'); } }
※コレで「src\resources\views\hello.blade.php」を読みにいくハズ
3.ビューの作成
▼「src\resources\views」に「hello.blade.php」を作成
<!DOCTYPE html> <html> <head> <title>hello world</title> </head> <body> <p>hello world</p> </body> </html>
「http://localhost/laravel-test/hello」で確認