Cloud and IT Design Project



Laravel 5 フォームとHTMLをフォーマット出力するHtmlFacade

Category : Laravel5 · No Comments · by 2月 13th, 2015
この記事はLaravel 5 リリース後のLaravel Framework version 5.0を元に記載しています。

Laravel4には、HtmlFacadeというフォームやHTML要素を自動生成して出力してくれる便利なクラスがありましたが、L5からはデフォルトでは入らなくなりました。

L4ではよく使っていたので、入れておくと楽です。

/composer.jsonに挿入

"require": {
"laravel/framework": "~5.0",
"illuminate/html": "~5.0"
},

以下をシェルで実行

composer update

待つこと数分。。。

/app/config/app.php

他の説明書では、「aliases」の記載が、Htmlとなっているのが多いですが、ここは、HTMLと大文字でないとエラーになります。

'providers' => [
・
・
    'Illuminate\Html\HtmlServiceProvider', 
],

'aliases' => [
・
・
    'Form' => 'Illuminate\Html\FormFacade',
    'HTML' => 'Illuminate\Html\HtmlFacade',
]

参考:bladeでの使い方はL4の時と同じです。一つだけ、L5の場合、エスケープさせないときの書き方が三十括弧から、{!!に変わったので、ご注意を

L5でFormの例

{!! Form::open(array('route' => 'contact_store', 'class' => 'form')) !!}
...
{!! Form::close() !!}

 

Laravel 5 コントローラーを触ってみた

Category : Laravel5 · No Comments · by 2月 11th, 2015
この記事はLaravel 5 リリース後のLaravel Framework version 5.0を元に記載しています。

Laravelを利用する際は、なるべくフレームワークに準拠した名前で命名するのが最初は楽です。変えることもできますが、最初は郷に入ったら郷に従えと。

それでは、Laravelフレームワークに沿ってコントローラーを作る場合、
FooController
Fooが固有の名前+Controllerと名付けましょう。
それではatrisan先生にひな形を生成してもらいます。

php artisan make:controller FooController

すると、app/Http/Cotrollers/FooController.phpができるので、
適宜修正します。L4と比べると、名前空間の記載が必要なので、use〜というのが増えてますね。fooという名前でViewを作ってみます。色々な機能(REST)がデフォルトで入ってきますが、今回はindexだけを作ってみます。
indexとは、http://hostname/foo/ を開いた場合になります。

viewでは、fooはコントローラーで付けた名前で、小文字で指定します。

<?php namespace App\Http\Controllers;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

class FooController extends Controller {

     /**
      * Display a listing of the resource.
      *
      * @return Response
      */
     public function index()
     {
          return view('foo');
     }

}

コントローラーが出来たら、ルーティングを設定します。ルーティングとは、/foo/でアクセスしたときの参照先である、FooController.phpを指定します。
app/Http/routes.phpを編集します。

以下を追加します。http://hostname/foo/でアクセスしたとき、
FooControllerクラス(FooController.php)を参照すると言う意味です。
routes.phpの使い方は、L4と基本同じです。

Route::resource('foo','FooController');

さて、これで、viewをつくってみましょ。
まずは、簡単にHTMLを表示する例です。
app/resources/views/foo.blade.php
を作成します。
L5には、bootstrapテンプレートが最初から入っているので、テンプレートを拝借してみます。

@extends('app')

@section('content')
<div class="container">
     <div class="row">
          <div class="col-md-10 col-md-offset-1">
               <div class="panel panel-default">
                    <div class="panel-heading">Fooのテスト</div>

                    <div class="panel-body">
                         こんにちは、fooです。表示してまっか?
                    </div>
               </div>
          </div>
     </div>
</div>
@endsection

問題無ければ表示されるはずです。

Laravel 5 Seedで見る名前空間追加の例

Category : Laravel5 · No Comments · by 2月 9th, 2015

この記事はLaravel 5 リリース後のLaravel Framework version 5.0を元に記載しています。

Laravel 5 Seedは、Larabelに先代から存在している、簡単に初期データとして追加できる機能です。

Larabel 4 (L4)との違いはほとんど無いです。ただし、注意点として名前空間を指定する必要があります。

名前空間とはなんぞやという方は別サイトでお調べください。なんだ、ややこしいL5から作業が増えたと思いますが、この名前空間のおかげで、自由な定義や配置ができるようになったそうなので、まあ、仕方ないですね。将来わかったら役に立つ、そういうものだと思いましょう。(かくいう私も勉強中です。。)

今回は、前回準備した、usersテーブルにseedを使って、初期データを登録してみましょう。

DatabaseSeeder.phpを修正

/database/seeds/DatabaseSeeder.php
L4と同じく、デフォルトの記述に追加したいクラス名を追加します。

ここでは例として、[UserTableSeeder]を追加

use Illuminate\Database\Seeder;//このへんもL5から追加されています
use Illuminate\Database\Eloquent\Model;//このへんもL5から追加されています

class DatabaseSeeder extends Seeder {

    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run() {
        Model::unguard();

        $this->call('UserTableSeeder');//クラス名
    }

}

初期データとして追加する実態のクラスを作成

/database/seeds/UserTableSeeder.phpを追加

追加内容はL4とあまり変わりませんが、

重要な点として、名前空間(ここでは、ユーザーテーブルを例にしているのでユーザーテーブルモデル、(/app/user.php)で指定している名前空間を useで追加してください。

(私は、これを忘れて はまりました。。)

<?php

use Illuminate\Database\Seeder;//これを追加しないとエラーになります!
use App\User;//これを追加しないとエラーになります!Appの名前空間を変えている場合は適宜変更を忘れずに!

class UserTableSeeder extends Seeder {

    public function run() {
        DB::table('users')->delete();

        User::create(array(
            'email' => 'foo@bar.com',
            'name' => 'admin',
            'password' => Hash::make( 'password' ) 
        ));
    }

}

あとの初期データの追加は、今まで通りartisan先生におまかせ

php artisan db:seed

以上で追加完了。追加したIDとパスワードでログインできれば成功です。

 

エラーが出る場合

use などの名前空間もちゃんと通っているのにクラスが見つからないエラーが出る時があります。

artisan make:コマンド で作った場合はオートローダー処理されますが、手作りでファイルを作るとたいていこれに見舞われます。

exception 'ReflectionException' with message 'Class クラス名TableSeeder does not exist' in /パス/Illuminate/Container/Container.php:776

などと行ってくる場合は、オートローラーの再構築が必要です。

composer dump-autoload

 

Laravel 5 ユーザー認証機能を動かしてみる

Category : Laravel5, 未分類 · No Comments · by 2月 8th, 2015

この記事はLaravel 5 リリース後のLaravel Framework version 5.0を元に記載しています。

laravel 5 には、ユーザー認証機能があらかじめ実装されています。

そのままでは利用できないので、実際に利用してみましょう。

まず、データベース設定をします。

.envファイルという隠しファイルにMysqlアカウントを追加します。

 .Laravelは、Vance Lucasさんにより作成された、DotEnvを活用しているので、朝飯前です。インストールしたてのLaravelでは、アプリケーションのルートディレクトリーに.env.exampleファイルが含まれています。Composerを利用してLaravelをインストールしたら、このファイルは自動的に.envへリネームされます。Composerを使用しない場合は、自分で名前を変更してください。

準備できたら、マイグレーションファイルがL5には最初から存在してるので、

app/database/migrations/2014_10_12_000000_create_users_table.php

app/database/migrations/2014_10_12_100000_create_password_resets_table.php

以下を実行するだけで、このマイグレーションファイルを元に、必要なデータベーステーブルが作成されます。

php aritisan migrate:install

http://localhost:8000/auth/register

にアクセスして、ユーザー登録します。

登録したIDとパスワードでログイン出来ましたね!

Laravel 5 リリース版 artisan 機能

Category : Laravel5 · No Comments · by 2月 6th, 2015

この記事はLaravel 5 リリース後のLaravel Framework version 5.0を元に記載しています。

先代と比べてかなり機能が増えました。

あ、一応サーバー機能(serve)も残ったようですね。

 
Options:
--help (-h)           Display this help message
--quiet (-q)          Do not output any message
--verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
--version (-V)        Display this application version
--ansi                Force ANSI output
--no-ansi             Disable ANSI output
--no-interaction (-n) Do not ask any interactive question
--env                 The environment the command should run under.

Available commands:
clear-compiled       Remove the compiled class file
down                 Put the application into maintenance mode
env                  Display the current framework environment
help                 Displays help for a command
inspire              Display an inspiring quote
list                 Lists commands
migrate              Run the database migrations
optimize             Optimize the framework for better performance
serve                Serve the application on the PHP development server
tinker               Interact with your application
up                   Bring the application out of maintenance mode
app
app:name             Set the application namespace
auth
auth:clear-resets    Flush expired password reset tokens
cache
cache:clear          Flush the application cache
cache:table          Create a migration for the cache database table
config
config:cache         Create a cache file for faster configuration loading
config:clear         Remove the configuration cache file
db
db:seed              Seed the database with records
event
event:generate       Generate the missing events and handlers based on registration
handler
handler:command      Create a new command handler class
handler:event        Create a new event handler class
key
key:generate         Set the application key
make
make:command         Create a new command class
make:console         Create a new Artisan command
make:controller      Create a new resource controller class
make:event           Create a new event class
make:middleware      Create a new middleware class
make:migration       Create a new migration file
make:model           Create a new Eloquent model class
make:provider        Create a new service provider class
make:request         Create a new form request class
migrate
migrate:install      Create the migration repository
migrate:refresh      Reset and re-run all migrations
migrate:reset        Rollback all database migrations
migrate:rollback     Rollback the last database migration
migrate:status       Show a list of migrations up/down
queue
queue:failed         List all of the failed queue jobs
queue:failed-table   Create a migration for the failed queue jobs database table
queue:flush          Flush all of the failed queue jobs
queue:forget         Delete a failed queue job
queue:listen         Listen to a given queue
queue:restart        Restart queue worker daemons after their current job
queue:retry          Retry a failed queue job
queue:subscribe      Subscribe a URL to an Iron.io push queue
queue:table          Create a migration for the queue jobs database table
queue:work           Process the next job on a queue
route
route:cache          Create a route cache file for faster route registration
route:clear          Remove the route cache file
route:list           List all registered routes
schedule
schedule:run         Run the scheduled commands
session
session:table        Create a migration for the session database table
vendor
vendor:publish       Publish any publishable assets from vendor packages 

Laravel 5 環境構築 OSX(10.8.5)編

Category : Laravel5 · No Comments · by 2月 6th, 2015

この記事はLaravel 5 リリース後のLaravel Framework version 5.0を元に記載しています。

これまで、テスト環境をOSXにする場合、いままでは、仮想環境を作ったり、phpを入れて、Apacheを入れて、MAMPでごにょごにょととか、portsとか、とってもめんどくさかったですが、php5.4にはなんと、開発用ローカルサーバー機能があるので、phpだけをつっこめば、ブラウザで検証しながら開発できちゃいます。便利すぎ。

それでは、ちゃちゃっと環境を作ります。10.8、10.9なんかも以下同じやり方でいけます。たぶん。

PHP5.4を入れる

laravel  5はPHP5.4以上が必要です。最新のPHP5.5系とか5.6系でも当然動くようですが、後々サーバー用意の事を考えると、世の中的に5.4くらいのほうが無難かと思います。で、以下を利用します。

PHP 5.3/5.4 for OS X 10.6/10.7 as binary package」を利用します。試した中ではこれが一番楽で、依存がありません。

ダウンロード&インストール

$ curl -s http://php-osx.liip.ch/install.sh | bash -s 5.4

環境変数にphp5.4を入れる

vim ~/.bash_profile

以下を追記する

export PATH=/usr/local/php5/bin:$PATH

設定を読み込ませる

source ~/.bash_profile

簡単ですね。

TIPS:
Laravel 5は、
<ul>
	<li>Mcrypt PHP Extension</li>
	<li>OpenSSL PHP Extension</li>
	<li>Mbstring PHP Extension</li>
</ul>
が必要らしいですが、上記でインストールした、php-osx.liip.chに一式入っているので、
別途のphpモジュールインストールは不要です。

次に、Composerのインストール

Composerのインストール

curl -sS https://getcomposer.org/installer | php -d detect_unicode=Off

パスが通っている場所へリネームして移動

mv composer.phar /usr/local/bin/composer

以上でlaravel 5を入れる準備が出来ました!いやぁ、Macってほんとに便利だね。

それではlaravel 5をいれちゃいます。

Laravel 5をインストール

以下からLaravel 5を L5 Laravel 4をL4と記します。OSI参照モデルではないですよ。

ここからは、先代のL4とはちとちがい、laravelコマンドを仕込みます。

composer global require "laravel/installer=~1.1"

環境変数にlaravel 5を入れる

vim ~/.bash_profile

以下を追記する

export PATH=~/.composer/vendor/bin:$PATH

設定を読み込ませる

source ~/.bash_profile

これでいつでもL5が利用できます。

それではサイトを新規作成

L5からは、以下のコマンドでサイトをイニシャライズできます。これは!前より処理が早い。

laravel new foo

恒例のテストサーバーを立ち上げ

L5開発中は、artisan先生からサーバー立ち上げ機能が消えたとの消息筋からの噂もありましたので、phpのサーバー機能で立ち上げてみましょう。

cd foo
php -S localhost:8000 -t public/

さてさて、お約束のLaravel 5画面を拝んでみましょう〜

スクリーンショット 2015-02-06 20.15.08

Simplicity is an acquired taste. – Katharine Gerould

確かに。シンプル。

以上でlaravel 5フレームワークがインストール完了しました。あとは煮るなり焼くなり。