Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Laravelを使ってみた

1,418 views

Published on

PHPフレームワークであるLaravelの紹介

Published in: Engineering
  • Be the first to comment

Laravelを使ってみた

  1. 1. 今、世界でもっとも注目されている Laravelを使ってみた 鄭在燮
  2. 2. なぜ選んだのか
  3. 3. 未経験のフレームワークが使ってみた かった。 そしてググる...
  4. 4. グーグルトレンド
  5. 5. だか...
  6. 6. 日本国内では
  7. 7. 選定理由もう一点あります。
  8. 8. 日本語ドキュメントが充実 • 日本語翻訳率100%! http://readouble.com/laravel/ しかも、韓国語のドキュメントもあった…
  9. 9. ※ほんとうはベンチマークとか、情報 収集とか、しっかりやりましょう。
  10. 10. 概要&豆知識
  11. 11. • マイクロソフトの.NETの開発に関わっていたTaylor Otwellが開発 • PHP5.3以上(最新バージョンは5.4以上) • MITライセンス • バージョン Laravel1 2011年6月 Laravel2 2011年11月 Laravel3 2012年2月 Laravel4 2013年5月 Laravel5 2015年1月 ← 最初は4.3想定のものがメジャーバージョンアップになった • ソースの読み書きが簡単 • 学習コストが低い • ベンチマーク結果はよくない http://blog.s-page.org/archives/563 • 大型システムで使われた実績は今のところない模様 • 英語圏の国ではCodeIgniter、FuelPHP、CakePHPとよく比較されている • 2014年における最も有望なPHPフレームワークの1つとして挙げられた http://www.sitepoint.com/best-php-frameworks-2014/ • ドキュメント翻訳&日本にLaravelを浸透させている先駆者はHirohisa Kawaseさん https://www.facebook.com/hirokws • Laravel関連書籍 http://qiita.com/mukaken/items/2058a193ee0ce6fbfd30
  12. 12. 機能
  13. 13. 認証(Auth)、キャッシュ、Eloquent、MySQL、 PostgreSQL、SQlite、SQLServer、マイグレーション、 IoCコンテナ、Config、Formヘルパー、HTMLヘル パー、URLヘルパー、ルーティング、コントロー ラー、モデル、ビュー、モデル間のリレーション シップ、リダイレクト、レスポンス、String(文字列) ヘルプ関数、バリデーション、ユニットテスト、 Bladeテンプレートエンジン、DB Seeding、キュー、 メール、ファサード(Facade)、コマンドライン、拡 張性
  14. 14. キャッシュ • Memcached、Redis、APCなどのIn-MemoryキャッシュシステムがなくてもLaravelではキャッシュが 使える Cache::put('key', 'value', $minutes); Cache::has('key') Cache::get('key'); Cache::forever('key', 'value'); • Filesystemに保存となるので本格的に使う場合は、In-Memoryキャッシュシステムをおすすめ
  15. 15. Redis • Composerによりpredisをインストールする必要がある。 'redis' => [ 'cluster' => true, 'default' => ['host' => '127.0.0.1', 'port' => 6379], ], $redis = Redis::connection(); $redis->set('name', 'Taylor'); $redis->get('name');
  16. 16. MySQL • 設定と使い方がとても簡単 'mysql' => [ 'read' => [ 'host' => '192.168.1.1', ], 'write' => [ 'host' => '196.168.1.2‘ ], 'driver' => 'mysql', 'database' => 'database', 'username' => 'root', 'password' => '', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ], DB::select($sql, $param); DB::insert($sql, $param); DB::update($sql, $param); DB::beginTransaction(); DB::rollback(); DB::commit();
  17. 17. Config • 自由な書き方 ‘AAA' => 2, ‘BBB' => array( 1 => 'station_name‘, 2 => 'dept_name‘ ), ‘CCC' => app_path() . '/test.csv', Config::get('code_define.AAA'); • 環境毎設定(Default&オーバーライド) $env = $app->detectEnvironment(array( ‘dev’ => array(マシンのホスト名), 'stg' => array(マシンのホスト名), ));
  18. 18. RESTful Route::controller('hello/', 'AppControllershelloController'); namespace AppControllers; class helloController extends BaseController { // getでhello/にアクセスされた場合 public function getIndex() { 〜 } // getでhello/goodmorningにアクセスされた場合 public function getGoodmorning() { 〜 } // postでhello/goodmorningにアクセスされた場合 public function postGoodmorning() { 〜 } // getでhello/goodmorning/messageでアクセスされた場合 public function getGoodmorning($message) { 〜 } }
  19. 19. Resourceful Route::resource('hello', 'AppControllershelloController'); namespace AppControllers; class helloController extends BaseController { // getでhello/にアクセスされた場合 public function index() { 〜 } // getでhello/createにアクセスされた場合 public function create() { 〜 } // postでhello/にアクセスされた場合 public function store() { 〜 } // getでhello/messageにアクセスされた場合 public function show($message) { 〜 } // getでhello/message/editにアクセスされた場合 public function edit($message) { 〜 } // putまたはpatchでhello/messageにアクセスされた場合 public function update($message) { 〜 } // deleteでhello/messageにアクセスされた場合 public function destroy($message) { 〜 } }
  20. 20. バリデーション public $validate_rules = array( 'id' => 'required|numeric|min:1', 'text' => 'required', 'offset' => 'numeric', ); accepted そのフィールドがyes、on、もしくは1であることをバリデートします。これは「サービス利用規約」同意のバリデーショ ンに便利です。 in:foo,bar... フィールドが指定されたリストの中の値に含まれていることをバリデートします。 integer フィールドが整数値であることをバリデートします。 required フィールドに入力データーが存在することをバリデートします。 ip フィールドがIPアドレスの形式として正しいことをバリデートします。 boolean フィールドが論理値として有効であることをバリデートします。受け入れられる入力は、true、false、1、0、"1"、"0"で す。 email フィールドがメールアドレスとして正しいことをバリデートします。 その他、多数あります。
  21. 21. メール 'driver' => 'smtp', 'host' => 'yourhost.com', 'port' => 25, 'from' => array('address' => 'admin@text,com', 'name' => 'admin_user'), Mail::send(array('text' => $template), $param, function ($message) use ($to_address, $title) { foreach ($to_address as $key => $val) { $message->to($val); } $message->subject($title); $message->getSwiftMessage()->getHeaders()->addTextHeader('Reply-To', "admin <admin@test.com>"); });
  22. 22. 拡張性 • Composerを利用 • INSTALL composer create-project laravel/laravel --prefer-dist
  23. 23. その他気になる機能 • 認証(ソーシャル認証) • 暗号化 • ハッシュ • ファサード • 多言語化 • ペジネーション • キュ • セッション • テンプレート • ユニットテスト
  24. 24. 使ってみてどうだった?
  25. 25. 速度を重視するなら他の爆速と言わ れているフレームワークがいいかも… けど、Laravelは使いやすいし、楽し かった。小規模システムや個人の何か を開発するにはいい。大概の機能や 概念が溶け込んでいるので初心者に おすすめできる。
  26. 26. おわり

×