SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
ARUBEH Inc.
Laravelを利用した
ウェブ発注システム
PHP初心者が1年間で
実践で学びながら開発した経験
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
1
第104回 PHP勉強会@東京
平成28年7月27日
ARUBEH Inc.
# 自己紹介
イ ジュングン
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
2
• 韓国群山(グンサン)市出身、ソウル育ち
• イギリス留学中日本人の妻と出会う
• 2009年に日本に来て(株)プロネッツに入社
• 2015年、(株)アルベに入社
Jun Keun, Lee
lee@arubeh.com
ARUBEH Inc.
# Laravelとの出会い
2009~2014年
• 通信用サーバー(PCRF)
• C++
• Linux、GCC
• Viでコーディング
• 2014年!
JavaのPlayフレームワーク
で業務システム開発を
経験→WEB系に憧れる
2015年
• たまたまの紹介で
「アルベ」に出会う。
– Webシステム開発
– Laravelで開発していく方針
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
3
http://www.arubeh.com
ARUBEH Inc.
# その1(国際求人サイト)
• PHPを学ぼう!
• Laravelを学ぼう!
• 実践で学びながらWEBサービスを作ろう!
• オープンソースを出来るだけ利用する!
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
4
ARUBEH Inc.
# その1(国際求人サイト)
• https://laravel10.wordpress.com/
• http://readouble.com/laravel/
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
5
ARUBEH Inc.
# その1(国際求人サイト)
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
6
ARUBEH Inc.
# 実その1(国際求人サイト)
頑張ったこと
• PHP 5.6
• Laravel 5.0 → 5.1LTS
• Maria DB
• Materialize
• Node.js
• Redis
• SOCKET.IO
学んだこと
• PHPの文法
• HTML/Javascripの文法
• WEB業界の一般的な知識
• MVC思考
• Laravelの基本的な使い方
– Routing/Middleware
– Controllers/Views
– Eloquent ORM(Getting Started)
– Blade Templates
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
7
ARUBEH Inc.
# その1(国際求人サイト)
2016/7/28
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
8
Routing
Middleware
Eloquent ORM
(Model)
Blade Templates
(View)
リクエスト
Controllers
Controllers
Controllers
レスポンス
Request
Request
Request
DB
ARUBEH Inc.
# その1(国際求人サイト)
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
9
Routing
Middleware
Eloquent ORM
(Model)
Blade Templates
(View)
リクエスト
Controllers
Controllers
Controllers
レスポンス
Request
Request
Request
DB
Rootフォルダ└─app
│ User.php
├─Http
│ │ routes.php
│ ├─Controllers
│ │ UserController.php
│ ├─Middleware
│ │ Authenticate.php
│ └─Requests
│ Request.php
│ UserRequest.php
└─views
user_update.blade.php
<?php
Route::get(
'user/{id}',
UserController@updateProfile
);
ARUBEH Inc.
# その1(国際求人サイト)
2016/7/28
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
10
Routing
Middleware
Eloquent ORM
(Model)
Blade Templates
(View)
リクエスト
Controllers
Controllers
Controllers
レスポンス
Request
Request
Request
DB
Rootフォルダ
└─app
│ User.php
├─Http
│ │ routes.php
│ ├─Controllers
│ │ UserController.php
│ ├─Middleware
│ │ Authenticate.php
│ └─Requests
│ Request.php
│ UserRequest.php
└─views
user_update.blade.php
ARUBEH Inc.
# その1(国際求人サイト)
2016/7/28
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
11
Routing
Middleware
Eloquent ORM
(Model)
Blade Templates
(View)
リクエスト
Controllers
Controllers
Controllers
レスポンス
Request
Request
Request
DB
Rootフォルダ
└─app
│ User.php
├─Http
│ │ routes.php
│ ├─Controllers
│ │ UserController.php
│ ├─Middleware
│ │ Authenticate.php
│ └─Requests
│ Request.php
│ UserRequest.php
└─views
user_update.blade.php
class UserController extends Controller
{
public function updateProfile(
UserRequest $request,
$id
) {
// ロジック
$user = User::find($id);
$user->update($request->all());
$user = User::find($id);
return view(
'user_update',
compact('user')
);
}
}
ARUBEH Inc.
# その1(国際求人サイト)
2016/7/28
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
12
Routing
Middleware
Eloquent ORM
(Model)
Blade Templates
(View)
リクエスト
Controllers
Controllers
Controllers
レスポンス
Request
Request
Request
DB
Rootフォルダ
└─app
│ User.php
├─Http
│ │ routes.php
│ ├─Controllers
│ │ UserController.php
│ ├─Middleware
│ │ Authenticate.php
│ └─Requests
│ Request.php
│ UserRequest.php
└─views
user_update.blade.php
class UserController extends Controller
{
public function updateProfile(
UserRequest $request,
$id
) {
// ロジック
$user = User::find($id);
$user->update($request->all());
$user = User::find($id);
return view(
'user_update',
compact('user')
);
}
}
Rootフォルダ
└─app
│ User.php
├─Http
│ │ routes.php
│ ├─Controllers
│ │ UserController.php
│ ├─Middleware
│ │ Authenticate.php
│ └─Requests
│ Request.php
│ UserRequest.php
└─views
welcome.blade.php
<?php
class UserRequest extends Request
{
public function authorize()
{
// 認証処理
}
public function rules()
{
// バリデーションチェック処理
}
}
Rootフォルダ
└─app
│ User.php
├─Http
│ │ routes.php
│ ├─Controllers
│ │ UserController.php
│ ├─Middleware
│ │ Authenticate.php
│ └─Requests
│ Request.php
│ UserRequest.php
└─views
user_update.blade.php
ARUBEH Inc.
# その1(国際求人サイト)
2016/7/28
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
13
Routing
Middleware
Eloquent ORM
(Model)
Blade Templates
(View)
リクエスト
Controllers
Controllers
Controllers
レスポンス
Request
Request
Request
DB
<!DOCTYPE html>
<html>
<head>
<title>Laravel</title>
</head>
<body>
<div>
・名前:{{ $user->name}}<br>
・メール:{{ $user->email}}
</div>
</body>
</html>
Rootフォルダ
└─app
│ User.php
├─Http
│ │ routes.php
│ ├─Controllers
│ │ UserController.php
│ ├─Middleware
│ │ Authenticate.php
│ └─Requests
│ Request.php
│ UserRequest.php
└─views
user_update.blade.php
ARUBEH Inc.
# 実その1(国際求人サイト)
• ENTRUST (Laravel 5 Package)
– https://github.com/Zizaco/entrust
• CSV
– https://github.com/thephpleague/csv
– http://csv.thephpleague.com/
• Laravel Localization
– https://github.com/mcamara/laravel-localization
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
14
ARUBEH Inc.
# その1(国際求人サイト)
• Windows10にLaravel開発環境を構築 _
株式会社アルベ _ Arubeh Inc.
– http://www.arubeh.com/archives/1470
• Laravel 5.1 プロジェクト作成(インス
トール) _ 株式会社アルベ _ Arubeh Inc.
– http://www.arubeh.com/archives/1367
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
15
ARUBEH Inc.
# その2(ウェブ発注システム)
• Laravelをスマートに利用しよう!
• 次のプロジェクトに再利用したい!
– パッケージの制作
• 最新の技術を利用しよう!
– PHP 7
– Laravel 5.2
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
16
ARUBEH Inc.
# その2(ウェブ発注システム)
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
17
ARUBEH Inc.
# その2(ウェブ発注システム)
頑張ったこと
• PHP 7 → PHP 5.6
• Lavavel 5.2 → 5.1LTS
• Maria DB
• Bootstrap
※パッケージ化について
のスキルは身につかな
かった!
学んだこと
• PHP 7のお試し
• Laravel 5.2のお試し
• Laravelの使い方
– Service Providers
– Service Container
– Facades
– Eloquent ORM
(Relationships、…)
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
18
ARUBEH Inc.
# その2(ウェブ発注システム)
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
19
Routing
Middleware
Blade Templates
(View)
リクエスト
Controllers
Controllers
Controllers
レスポンス
Request
Request
Request
Service
(ロジック)
Service
(ロジック)
Service
(ロジック)
Eloquent ORM
(Model) DB
ARUBEH Inc.
# その2(ウェブ発注システム)
• http://kore1server.com/319/Laravel5.
1、基本コンポーネントの流れ
– Laravel5.1、基本コンポーネントの流れ
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
20
ARUBEH Inc.
# その3(パッケージ制作)
• 次のプロジェクトに楽に再利用したい!
• 外部パッケージをもっと使いやすくした
い!
自社パッケージの開発!
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
21
ARUBEH Inc.
# その3(パッケージ制作)
arubeh/laravel-csv
• CSVインポート機能
• CSVエクスポート機能
• 大量データー対応
• Shift-JIS文字コード対応
• PHP 7 対応
arubeh/laravel-auth
• 認証機能の拡張
• ユーザー登録機能
– 本人確認機能の追加
• 役割と権限機能
– ユーザー毎の役割と権限
– ルーティング時判定
– ユーザーの権限判定
• ユーザー管理機能
– ユーザーリスト
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
22
ARUBEH Inc.
# その3(パッケージ制作)
arubeh/laravel-address
• 日本の住所入力フォーム
作成ヘルパー
• 簡単ルーティング設定
• 簡単フォーム作成
• 郵便番号入力時住所取得
• 住所入力時郵便番号取得
arubeh/laravel-eloquent
• Eloquent機能を拡張
• leftJoinを行って検索する
クエリービルダーの追加
• leftJoinを行ってソートする
クエリービルダーの追加
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
23
ARUBEH Inc.
# その3(パッケージ制作)
• http://www.arubeh.com/archives/1298
– Laravelのパッケージ開発 _ 株式会社アルベ _
Arubeh Inc.
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
24
ARUBEH Inc.
# 次への展望(ショッピングサイト)
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
25
パッケージを購入できる場を作る
arubeh/auth arubeh/csv
…
ARUBEH Inc.
# 最後に
今回の件で興味をお持ちになりましたら
いつでもご連絡下さい。
お待ちしております!
http://www.arubeh.com/staff
2016/7/27
Copyright © 2016 Arubeh,Inc. All Rights Reserved.
26
ご清聴、ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようAlfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようTasuku Otani
 
Laravelとテストについて
LaravelとテストについてLaravelとテストについて
LaravelとテストについてTakeo Noda
 
Java web application testing
Java web application testingJava web application testing
Java web application testingTokuhiro Matsuno
 
JobSchedulerを使ったDevOps at OSC Tokyo/Fall 2013
JobSchedulerを使ったDevOps at OSC Tokyo/Fall 2013JobSchedulerを使ったDevOps at OSC Tokyo/Fall 2013
JobSchedulerを使ったDevOps at OSC Tokyo/Fall 2013OSSラボ株式会社
 
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会Yuki Okada
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証についてTakeo Noda
 
ディレクションのすゝめ
ディレクションのすゝめディレクションのすゝめ
ディレクションのすゝめTakeo Noda
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義ria1201
 
AzureでLaravel動かしてみた
AzureでLaravel動かしてみたAzureでLaravel動かしてみた
AzureでLaravel動かしてみたKeiji Kamebuchi
 
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションPHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションHideo Kashioka
 
flyingV Laravel & AWS 經驗分享
flyingV Laravel & AWS 經驗分享flyingV Laravel & AWS 經驗分享
flyingV Laravel & AWS 經驗分享Eugene Wang
 
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016Takayuki Shimizukawa
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールdcubeio
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUpKenichi Mukai
 
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知zaru sakuraba
 
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03Yahoo!デベロッパーネットワーク
 
スマートフォンWebアプリ最適化”3つの極意”
スマートフォンWebアプリ最適化”3つの極意”スマートフォンWebアプリ最適化”3つの極意”
スマートフォンWebアプリ最適化”3つの極意”Koji Ishimoto
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Tokuhiro Matsuno
 
Jtf13 ossジョブ管理システムによる運用自動化事例
Jtf13 ossジョブ管理システムによる運用自動化事例 Jtf13 ossジョブ管理システムによる運用自動化事例
Jtf13 ossジョブ管理システムによる運用自動化事例 OSSラボ株式会社
 

Was ist angesagt? (20)

Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようAlfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
 
Laravelとテストについて
LaravelとテストについてLaravelとテストについて
Laravelとテストについて
 
Java web application testing
Java web application testingJava web application testing
Java web application testing
 
JobSchedulerを使ったDevOps at OSC Tokyo/Fall 2013
JobSchedulerを使ったDevOps at OSC Tokyo/Fall 2013JobSchedulerを使ったDevOps at OSC Tokyo/Fall 2013
JobSchedulerを使ったDevOps at OSC Tokyo/Fall 2013
 
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証について
 
ディレクションのすゝめ
ディレクションのすゝめディレクションのすゝめ
ディレクションのすゝめ
 
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
 
AzureでLaravel動かしてみた
AzureでLaravel動かしてみたAzureでLaravel動かしてみた
AzureでLaravel動かしてみた
 
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションPHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
 
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
 ぼく(たち)のかんがえた最新のJS開発環境 #scripty04 ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
ぼく(たち)のかんがえた最新のJS開発環境 #scripty04
 
flyingV Laravel & AWS 經驗分享
flyingV Laravel & AWS 經驗分享flyingV Laravel & AWS 經驗分享
flyingV Laravel & AWS 經驗分享
 
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく - Django Redshift Backend の開発 - PyCon JP 2016
 
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツールこんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUp
 
Service workerとwebプッシュ通知
Service workerとwebプッシュ通知Service workerとwebプッシュ通知
Service workerとwebプッシュ通知
 
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
リファクタリングHTML/CSS ~レガシー世界を超えて~ #scripty03
 
スマートフォンWebアプリ最適化”3つの極意”
スマートフォンWebアプリ最適化”3つの極意”スマートフォンWebアプリ最適化”3つの極意”
スマートフォンWebアプリ最適化”3つの極意”
 
Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用Lineにおけるspring frameworkの活用
Lineにおけるspring frameworkの活用
 
Jtf13 ossジョブ管理システムによる運用自動化事例
Jtf13 ossジョブ管理システムによる運用自動化事例 Jtf13 ossジョブ管理システムによる運用自動化事例
Jtf13 ossジョブ管理システムによる運用自動化事例
 

Ähnlich wie 第104回 php勉強会@東京 Laravel

ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxPHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxHideo Kashioka
 
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由Kenichi Mukai
 
Phpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerPhpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerHideo Kashioka
 
RFC: "var" Deprecation
RFC: "var" DeprecationRFC: "var" Deprecation
RFC: "var" Deprecationy-uti
 
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops裕貴 荒井
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform拓将 平林
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践Shumpei Shiraishi
 
Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミLaravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミShohei Okada
 
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜Hideo Kashioka
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳Uchio Kondo
 
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118Nozomi Kurihara
 
IPv6 アプリケーション開発入門
IPv6 アプリケーション開発入門IPv6 アプリケーション開発入門
IPv6 アプリケーション開発入門v6app
 
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)Shinichiro Yoshida
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座DIVE INTO CODE Corp.
 

Ähnlich wie 第104回 php勉強会@東京 Laravel (20)

OSC福岡 20111203
OSC福岡 20111203OSC福岡 20111203
OSC福岡 20111203
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxPHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
 
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
 
Phpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerPhpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginer
 
RFC: "var" Deprecation
RFC: "var" DeprecationRFC: "var" Deprecation
RFC: "var" Deprecation
 
3 tips of Laravel
3 tips of Laravel3 tips of Laravel
3 tips of Laravel
 
Ossを使ったazureでのdev ops
Ossを使ったazureでのdev opsOssを使ったazureでのdev ops
Ossを使ったazureでのdev ops
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
 
OSC2013@FUKUOKA
OSC2013@FUKUOKAOSC2013@FUKUOKA
OSC2013@FUKUOKA
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践
 
Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミLaravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミ
 
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
 
Hadoop ~Yahoo! JAPANの活用について~
Hadoop ~Yahoo! JAPANの活用について~Hadoop ~Yahoo! JAPANの活用について~
Hadoop ~Yahoo! JAPANの活用について~
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳
 
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
 
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
 
IPv6 アプリケーション開発入門
IPv6 アプリケーション開発入門IPv6 アプリケーション開発入門
IPv6 アプリケーション開発入門
 
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 

第104回 php勉強会@東京 Laravel

  • 1. ARUBEH Inc. Laravelを利用した ウェブ発注システム PHP初心者が1年間で 実践で学びながら開発した経験 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 1 第104回 PHP勉強会@東京 平成28年7月27日
  • 2. ARUBEH Inc. # 自己紹介 イ ジュングン 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 2 • 韓国群山(グンサン)市出身、ソウル育ち • イギリス留学中日本人の妻と出会う • 2009年に日本に来て(株)プロネッツに入社 • 2015年、(株)アルベに入社 Jun Keun, Lee lee@arubeh.com
  • 3. ARUBEH Inc. # Laravelとの出会い 2009~2014年 • 通信用サーバー(PCRF) • C++ • Linux、GCC • Viでコーディング • 2014年! JavaのPlayフレームワーク で業務システム開発を 経験→WEB系に憧れる 2015年 • たまたまの紹介で 「アルベ」に出会う。 – Webシステム開発 – Laravelで開発していく方針 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 3 http://www.arubeh.com
  • 4. ARUBEH Inc. # その1(国際求人サイト) • PHPを学ぼう! • Laravelを学ぼう! • 実践で学びながらWEBサービスを作ろう! • オープンソースを出来るだけ利用する! 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 4
  • 5. ARUBEH Inc. # その1(国際求人サイト) • https://laravel10.wordpress.com/ • http://readouble.com/laravel/ 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 5
  • 6. ARUBEH Inc. # その1(国際求人サイト) 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 6
  • 7. ARUBEH Inc. # 実その1(国際求人サイト) 頑張ったこと • PHP 5.6 • Laravel 5.0 → 5.1LTS • Maria DB • Materialize • Node.js • Redis • SOCKET.IO 学んだこと • PHPの文法 • HTML/Javascripの文法 • WEB業界の一般的な知識 • MVC思考 • Laravelの基本的な使い方 – Routing/Middleware – Controllers/Views – Eloquent ORM(Getting Started) – Blade Templates 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 7
  • 8. ARUBEH Inc. # その1(国際求人サイト) 2016/7/28 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 8 Routing Middleware Eloquent ORM (Model) Blade Templates (View) リクエスト Controllers Controllers Controllers レスポンス Request Request Request DB
  • 9. ARUBEH Inc. # その1(国際求人サイト) 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 9 Routing Middleware Eloquent ORM (Model) Blade Templates (View) リクエスト Controllers Controllers Controllers レスポンス Request Request Request DB Rootフォルダ└─app │ User.php ├─Http │ │ routes.php │ ├─Controllers │ │ UserController.php │ ├─Middleware │ │ Authenticate.php │ └─Requests │ Request.php │ UserRequest.php └─views user_update.blade.php <?php Route::get( 'user/{id}', UserController@updateProfile );
  • 10. ARUBEH Inc. # その1(国際求人サイト) 2016/7/28 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 10 Routing Middleware Eloquent ORM (Model) Blade Templates (View) リクエスト Controllers Controllers Controllers レスポンス Request Request Request DB Rootフォルダ └─app │ User.php ├─Http │ │ routes.php │ ├─Controllers │ │ UserController.php │ ├─Middleware │ │ Authenticate.php │ └─Requests │ Request.php │ UserRequest.php └─views user_update.blade.php
  • 11. ARUBEH Inc. # その1(国際求人サイト) 2016/7/28 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 11 Routing Middleware Eloquent ORM (Model) Blade Templates (View) リクエスト Controllers Controllers Controllers レスポンス Request Request Request DB Rootフォルダ └─app │ User.php ├─Http │ │ routes.php │ ├─Controllers │ │ UserController.php │ ├─Middleware │ │ Authenticate.php │ └─Requests │ Request.php │ UserRequest.php └─views user_update.blade.php class UserController extends Controller { public function updateProfile( UserRequest $request, $id ) { // ロジック $user = User::find($id); $user->update($request->all()); $user = User::find($id); return view( 'user_update', compact('user') ); } }
  • 12. ARUBEH Inc. # その1(国際求人サイト) 2016/7/28 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 12 Routing Middleware Eloquent ORM (Model) Blade Templates (View) リクエスト Controllers Controllers Controllers レスポンス Request Request Request DB Rootフォルダ └─app │ User.php ├─Http │ │ routes.php │ ├─Controllers │ │ UserController.php │ ├─Middleware │ │ Authenticate.php │ └─Requests │ Request.php │ UserRequest.php └─views user_update.blade.php class UserController extends Controller { public function updateProfile( UserRequest $request, $id ) { // ロジック $user = User::find($id); $user->update($request->all()); $user = User::find($id); return view( 'user_update', compact('user') ); } } Rootフォルダ └─app │ User.php ├─Http │ │ routes.php │ ├─Controllers │ │ UserController.php │ ├─Middleware │ │ Authenticate.php │ └─Requests │ Request.php │ UserRequest.php └─views welcome.blade.php <?php class UserRequest extends Request { public function authorize() { // 認証処理 } public function rules() { // バリデーションチェック処理 } } Rootフォルダ └─app │ User.php ├─Http │ │ routes.php │ ├─Controllers │ │ UserController.php │ ├─Middleware │ │ Authenticate.php │ └─Requests │ Request.php │ UserRequest.php └─views user_update.blade.php
  • 13. ARUBEH Inc. # その1(国際求人サイト) 2016/7/28 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 13 Routing Middleware Eloquent ORM (Model) Blade Templates (View) リクエスト Controllers Controllers Controllers レスポンス Request Request Request DB <!DOCTYPE html> <html> <head> <title>Laravel</title> </head> <body> <div> ・名前:{{ $user->name}}<br> ・メール:{{ $user->email}} </div> </body> </html> Rootフォルダ └─app │ User.php ├─Http │ │ routes.php │ ├─Controllers │ │ UserController.php │ ├─Middleware │ │ Authenticate.php │ └─Requests │ Request.php │ UserRequest.php └─views user_update.blade.php
  • 14. ARUBEH Inc. # 実その1(国際求人サイト) • ENTRUST (Laravel 5 Package) – https://github.com/Zizaco/entrust • CSV – https://github.com/thephpleague/csv – http://csv.thephpleague.com/ • Laravel Localization – https://github.com/mcamara/laravel-localization 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 14
  • 15. ARUBEH Inc. # その1(国際求人サイト) • Windows10にLaravel開発環境を構築 _ 株式会社アルベ _ Arubeh Inc. – http://www.arubeh.com/archives/1470 • Laravel 5.1 プロジェクト作成(インス トール) _ 株式会社アルベ _ Arubeh Inc. – http://www.arubeh.com/archives/1367 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 15
  • 16. ARUBEH Inc. # その2(ウェブ発注システム) • Laravelをスマートに利用しよう! • 次のプロジェクトに再利用したい! – パッケージの制作 • 最新の技術を利用しよう! – PHP 7 – Laravel 5.2 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 16
  • 17. ARUBEH Inc. # その2(ウェブ発注システム) 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 17
  • 18. ARUBEH Inc. # その2(ウェブ発注システム) 頑張ったこと • PHP 7 → PHP 5.6 • Lavavel 5.2 → 5.1LTS • Maria DB • Bootstrap ※パッケージ化について のスキルは身につかな かった! 学んだこと • PHP 7のお試し • Laravel 5.2のお試し • Laravelの使い方 – Service Providers – Service Container – Facades – Eloquent ORM (Relationships、…) 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 18
  • 19. ARUBEH Inc. # その2(ウェブ発注システム) 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 19 Routing Middleware Blade Templates (View) リクエスト Controllers Controllers Controllers レスポンス Request Request Request Service (ロジック) Service (ロジック) Service (ロジック) Eloquent ORM (Model) DB
  • 20. ARUBEH Inc. # その2(ウェブ発注システム) • http://kore1server.com/319/Laravel5. 1、基本コンポーネントの流れ – Laravel5.1、基本コンポーネントの流れ 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 20
  • 21. ARUBEH Inc. # その3(パッケージ制作) • 次のプロジェクトに楽に再利用したい! • 外部パッケージをもっと使いやすくした い! 自社パッケージの開発! 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 21
  • 22. ARUBEH Inc. # その3(パッケージ制作) arubeh/laravel-csv • CSVインポート機能 • CSVエクスポート機能 • 大量データー対応 • Shift-JIS文字コード対応 • PHP 7 対応 arubeh/laravel-auth • 認証機能の拡張 • ユーザー登録機能 – 本人確認機能の追加 • 役割と権限機能 – ユーザー毎の役割と権限 – ルーティング時判定 – ユーザーの権限判定 • ユーザー管理機能 – ユーザーリスト 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 22
  • 23. ARUBEH Inc. # その3(パッケージ制作) arubeh/laravel-address • 日本の住所入力フォーム 作成ヘルパー • 簡単ルーティング設定 • 簡単フォーム作成 • 郵便番号入力時住所取得 • 住所入力時郵便番号取得 arubeh/laravel-eloquent • Eloquent機能を拡張 • leftJoinを行って検索する クエリービルダーの追加 • leftJoinを行ってソートする クエリービルダーの追加 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 23
  • 24. ARUBEH Inc. # その3(パッケージ制作) • http://www.arubeh.com/archives/1298 – Laravelのパッケージ開発 _ 株式会社アルベ _ Arubeh Inc. 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 24
  • 25. ARUBEH Inc. # 次への展望(ショッピングサイト) 2016/7/27 Copyright © 2016 Arubeh,Inc. All Rights Reserved. 25 パッケージを購入できる場を作る arubeh/auth arubeh/csv …