Laravel5事始め
Laravel4からLaravel5へ。
会社でのPHPスクラッチ開発ではLaravel4を利用することが多く、とくに不便なく効率的に開発しています。
・・・が、Laravel5がでたので、ぼちぼち新規の案件では使いはじめないといけない状況です(と思います)
というわけで、まずは導入。
Quick Start
Composerを利用してLaraveインストーラーをインストールします。
PS C:\xampp\htdocs>composer global require "laravel/installer=~1.1" Changed current directory to C:/Users/Me/AppData/Roaming/Composer ./composer.json has been created Loading composer repositories with package information Updating dependencies (including require-dev) - Installing symfony/process (v2.7.0) Downloading: 100% - Installing symfony/console (v2.7.0) Downloading: 100% - Installing guzzlehttp/streams (2.1.0) Downloading: 100% - Installing guzzlehttp/guzzle (4.2.3) Downloading: 100% - Installing laravel/installer (v1.2.0) Downloading: 100% symfony/console suggests installing symfony/event-dispatcher () symfony/console suggests installing psr/log (For using the console logger) Writing lock file Generating autoload files PS C:\xampp\htdocs>
laravelコマンドが使えるようになった!
とおもったらエラー。
>laravel new blog 用語 'laravel' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名 前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。 発生場所 行:1 文字:8 + laravel <<<< new blog + CategoryInfo : ObjectNotFound: (laravel:String) []、CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
ファイルはvender配下に存在しています。
PS C:\xampp\htdocs> ls C:\Users\Me\AppData\Roaming\Composer\vendor\bin/ ディレクトリ: C:\Users\Me\AppData\Roaming\Composer\vendor\bin Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2015/06/05 21:14 140 laravel -a--- 2015/06/05 21:14 85 laravel.bat
公式ドキュメントによると、ここにPathを通さないといけないらしいんだけど、めんどくさいので直接。
> C:\Users\Me\AppData\Roaming\Composer\vendor\bin/laravel new blog Crafting application... Generating optimized class loader Compiling common classes
プロジェクトができました
ウェブアクセスも無事に完了
やっぱり簡単ですね。
従来通りcomposerでプロジェクトを作成することもできます。
composer create-project laravel/laravel --prefer-dist
ユーザ登録と認証は最初から用意されています。
/auth/loginでログイン画面
/auth/registerでユーザ登録
password/emailでパスワードリマインダー
・・・と思ったら、データベース接続エラーが発生
データベースを作成して、config/database.phpに設定を書きます。
'connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'database' => storage_path().'/database.sqlite', 'prefix' => '', ], 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', 'localhost'), 'database' => env('DB_DATABASE', 'laravel5'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('DB_PASSWORD', 'password'), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, ],
まだエラー
なんと、Laravel5では従来の環境名ではなく、PHP dotenvを利用しているので、ルートフォルダの.envファイルを変更する必要があるらしい。
Environment Configuration
NetBeansで、.(ドット)で始まるファイルがプロジェクトウィンドウに表示されないので、「ツール」→「オプション」→「ファイル」でフィルタ条件を変更
^(CVS|SCCS|vssver.?\.scc|#.*#|%.*%|_svn)$|~$|^\.(?!(htaccess|gitignore|gitkeep)$).*$
↓
^(CVS|SCCS|vssver.?\.scc|#.*#|%.*%|_svn)$|~$|^\.(?!(htaccess|gitignore|gitkeep|env)$).*$
みえた!
.envファイルを変更
DB_HOST=localhost DB_DATABASE=laravel5 DB_USERNAME=root DB_PASSWORD=password
無事に画面表示!
認証が不要なアプリケーションを作成する場合は、php artisan freshコマンドを実行します。