Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
伸茂
Uploaded by
伸幸 茂木
PPTX, PDF
301 views
Php development efficiency improvement
PHPの開発効率を向上させるためのナレッジをまとめています。
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 51
2
/ 51
3
/ 51
4
/ 51
5
/ 51
6
/ 51
7
/ 51
8
/ 51
9
/ 51
10
/ 51
11
/ 51
12
/ 51
13
/ 51
14
/ 51
15
/ 51
16
/ 51
17
/ 51
18
/ 51
19
/ 51
20
/ 51
21
/ 51
22
/ 51
23
/ 51
24
/ 51
25
/ 51
26
/ 51
27
/ 51
28
/ 51
29
/ 51
30
/ 51
31
/ 51
32
/ 51
33
/ 51
34
/ 51
35
/ 51
36
/ 51
37
/ 51
38
/ 51
39
/ 51
40
/ 51
41
/ 51
42
/ 51
43
/ 51
44
/ 51
45
/ 51
46
/ 51
47
/ 51
48
/ 51
49
/ 51
50
/ 51
51
/ 51
More Related Content
PDF
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
by
Yahoo!デベロッパーネットワーク
PDF
PHPでAIプログラミングコンテスト準優勝するまでの軌跡
by
Shintaro Kurachi
PDF
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
by
sasezaki
PDF
ECMAScript没proposal追悼式
by
京大 マイコンクラブ
PDF
安全なテーマ作成のためのPHPの知識
by
Fumito Mizuno
PDF
PHPの拡張モジュールをGoで作る
by
Yoshio Hanawa
PDF
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
by
sasezaki
PDF
Phpstormちょっといい話
by
Hisateru Tanaka
PHP版レガシーコード改善に役立つ新パターン #wewlc_jp
by
Yahoo!デベロッパーネットワーク
PHPでAIプログラミングコンテスト準優勝するまでの軌跡
by
Shintaro Kurachi
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
by
sasezaki
ECMAScript没proposal追悼式
by
京大 マイコンクラブ
安全なテーマ作成のためのPHPの知識
by
Fumito Mizuno
PHPの拡張モジュールをGoで作る
by
Yoshio Hanawa
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
by
sasezaki
Phpstormちょっといい話
by
Hisateru Tanaka
What's hot
PDF
PHP7で変わること ——言語仕様とエンジンの改善ポイント
by
Yoshio Hanawa
PDF
HTTPメッセージ、PHPの 事情ば分かっとっと?
by
sasezaki
PDF
トランザクションスクリプトのすすめ
by
pospome
ODP
どこに何を書くのか?
by
pospome
PDF
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
by
takenao
PDF
PHPerに覚えて欲しい日本語の重要性
by
Rina Fukuda
PDF
php-buildがいかに便利かを力説する
by
Yoshio Hanawa
PDF
アプリケーションコードにおける技術的負債について考える
by
pospome
ODP
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
PPTX
このPHP QAツールがすごい!2019
by
sasezaki
PDF
PHP7はなぜ速いのか
by
Yoshio Hanawa
PDF
PHP7の拡張モジュール事情
by
Yoshio Hanawa
PDF
PHP 8 で Web 以外の世界の扉を叩く
by
shinjiigarashi
PDF
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
by
shinjiigarashi
PPTX
C#の書き方
by
信之 岩永
PDF
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
by
Hiroshi Toda
PDF
Goji とレイヤ化アーキテクチャ
by
Shiroyagi Corporation
PPTX
広がる .Net
by
信之 岩永
PDF
PHP カンファレンス福岡 参加報告
by
y-uti
PDF
IDEALIZE YOU
by
佑介 九岡
PHP7で変わること ——言語仕様とエンジンの改善ポイント
by
Yoshio Hanawa
HTTPメッセージ、PHPの 事情ば分かっとっと?
by
sasezaki
トランザクションスクリプトのすすめ
by
pospome
どこに何を書くのか?
by
pospome
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
by
takenao
PHPerに覚えて欲しい日本語の重要性
by
Rina Fukuda
php-buildがいかに便利かを力説する
by
Yoshio Hanawa
アプリケーションコードにおける技術的負債について考える
by
pospome
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
by
pospome
このPHP QAツールがすごい!2019
by
sasezaki
PHP7はなぜ速いのか
by
Yoshio Hanawa
PHP7の拡張モジュール事情
by
Yoshio Hanawa
PHP 8 で Web 以外の世界の扉を叩く
by
shinjiigarashi
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
by
shinjiigarashi
C#の書き方
by
信之 岩永
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
by
Hiroshi Toda
Goji とレイヤ化アーキテクチャ
by
Shiroyagi Corporation
広がる .Net
by
信之 岩永
PHP カンファレンス福岡 参加報告
by
y-uti
IDEALIZE YOU
by
佑介 九岡
Similar to Php development efficiency improvement
PDF
PHPの今とこれから2025 (PHP Conference Japan 2025)
by
Rui Hirokawa
PPTX
PHP基礎勉強会
by
Yuji Otani
PDF
8時間耐久PHPUnitの教室
by
Yusuke Ando
PPTX
PHPCON_TOKYO_2022_Bigginer.pptx
by
Hideo Kashioka
PDF
PHPの今とこれから2021
by
Rui Hirokawa
PDF
Modern PHP Programming @ PFI Seminar
by
Sotaro Karasawa
PDF
OPcache の最適化器の今
by
y-uti
KEY
EC-CUBE + PHPUnit で 実践テスト駆動開発
by
Kentaro Ohkouchi
PDF
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
by
Hisateru Tanaka
PDF
Introduction to Continuous Test Runner MakeGood
by
Atsuhiro Kubo
PDF
PHPの今とこれから2019
by
Rui Hirokawa
PPT
初心者向けPHPソースコード診断
by
kitoku_magic
PPTX
php-src の歩き方
by
do_aki
PDF
PHPUnit でテスト駆動開発を始めよう
by
Yuya Takeyama
PDF
Web デザイナーが身に付けておきたい定番スキル ーPHP 初級編ー
by
Kite Koga
PDF
Getting Started with Testing using PHPUnit
by
Atsuhiro Kubo
KEY
WCO2012「PHP教室」
by
Takuma Morikawa
PDF
CodeIgniter東京勉強会 2011.05.14
by
Takako Miyagawa
PDF
PHPMD, PHP_CodeSniffer x SideCIによる継続的コードチェック
by
Koichiro Sumi
PDF
PHPフレームワーク入門
by
Sho A
PHPの今とこれから2025 (PHP Conference Japan 2025)
by
Rui Hirokawa
PHP基礎勉強会
by
Yuji Otani
8時間耐久PHPUnitの教室
by
Yusuke Ando
PHPCON_TOKYO_2022_Bigginer.pptx
by
Hideo Kashioka
PHPの今とこれから2021
by
Rui Hirokawa
Modern PHP Programming @ PFI Seminar
by
Sotaro Karasawa
OPcache の最適化器の今
by
y-uti
EC-CUBE + PHPUnit で 実践テスト駆動開発
by
Kentaro Ohkouchi
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
by
Hisateru Tanaka
Introduction to Continuous Test Runner MakeGood
by
Atsuhiro Kubo
PHPの今とこれから2019
by
Rui Hirokawa
初心者向けPHPソースコード診断
by
kitoku_magic
php-src の歩き方
by
do_aki
PHPUnit でテスト駆動開発を始めよう
by
Yuya Takeyama
Web デザイナーが身に付けておきたい定番スキル ーPHP 初級編ー
by
Kite Koga
Getting Started with Testing using PHPUnit
by
Atsuhiro Kubo
WCO2012「PHP教室」
by
Takuma Morikawa
CodeIgniter東京勉強会 2011.05.14
by
Takako Miyagawa
PHPMD, PHP_CodeSniffer x SideCIによる継続的コードチェック
by
Koichiro Sumi
PHPフレームワーク入門
by
Sho A
Recently uploaded
PDF
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
PDF
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
PDF
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
PPTX
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
PDF
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
PDF
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
PPTX
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
PDF
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
AI開発の最前線を変えるニューラルネットワークプロセッサと、未来社会における応用可能性
by
Data Source
PCCC25(設立25年記念PCクラスタシンポジウム):エヌビディア合同会社 テーマ1「NVIDIA 最新発表製品等のご案内」
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):コアマイクロシステムズ株式会社 テーマ 「AI HPC時代のトータルソリューションプロバイダ」
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ3「IT運用とデータサイエンティストを強力に支援するH...
by
PC Cluster Consortium
PCCC25(設立25年記念PCクラスタシンポジウム):富士通株式会社 テーマ1「HPC&AI: Accelerating material develo...
by
PC Cluster Consortium
論文紹介:MotionMatcher: Cinematic Motion Customizationof Text-to-Video Diffusion ...
by
Toru Tamaki
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ2「『Slinky』 SlurmとクラウドのKuber...
by
PC Cluster Consortium
論文紹介:HiLoRA: Adaptive Hierarchical LoRA Routing for Training-Free Domain Gene...
by
Toru Tamaki
PCCC25(設立25年記念PCクラスタシンポジウム):日本ヒューレット・パッカード合同会社 テーマ1「大規模AIの能力を最大限に活用するHPE Comp...
by
PC Cluster Consortium
ChatGPTのコネクタ開発から学ぶ、外部サービスをつなぐMCPサーバーの仕組み
by
Ryuji Egashira
論文紹介:DiffusionRet: Generative Text-Video Retrieval with Diffusion Model
by
Toru Tamaki
ニューラルプロセッサによるAI処理の高速化と、未知の可能性を切り拓く未来の人工知能
by
Data Source
2025年11月24日情報ネットワーク法学会大井哲也発表「API利用のシステム情報」
by
Tetsuya Oi
PCCC25(設立25年記念PCクラスタシンポジウム):Pacific Teck Japan テーマ3「『TrinityX』 AI時代のクラスターマネジメ...
by
PC Cluster Consortium
膨大なデータ時代を制する鍵、セグメンテーションAIが切り拓く解析精度と効率の革新
by
Data Source
Php development efficiency improvement
1.
【PHP入門】開発効率向上のためのナレッジ紹介 2018/07/25 株式会社 Rosso 茂木 伸幸 1
2.
自己紹介 • 株式会社 Rosso
技術推進室 TechLead • 主な業務 • Webアプリケーション開発・保守 • 言語 • PHP、Ruby • フレームワーク • Laravel、ZendFramework、Rails 茂木 伸幸 も ぎ の ぶ ゆ き Qiita(n_mogi) 2
3.
本日のアジェンダ • PHPの概要 • 静的コード解析ツールの説明 •
PHPUnitの説明 • 「Laravel」の便利機能の紹介 3
4.
今回の説明で得られる知識 • PHPの開発PJにて、整ったコードを書くためのツールの使い方 • PHPUnitの使い方 •
Laravelの基礎知識 4
5.
PHPの概要 5
6.
PHPとは? • Webアプリ開発の世界で広く使用されているスクリプト言語。 • HTMLの親和性が高い。 •
すぐに画面を表示させることが可能で学習コストも比較的低い。 • LaravelやCakePHPなど、web開発を円滑に進めるためのFWも 多く存在する。 6
7.
静的コード解析ツールの説明 7
8.
静的コード解析ツールとは? • PHPのソースコードのチェックをしてくれるツール。 • コーディング規約違反、冗長なコードを見つけてくれるなど、 複数のものが存在する。 •
メリット • 人が手動でチェック・修正するよりもツールに任せた方が効率がかな り高くなる。 8
9.
今回紹介するツール • PHPCS • PHPMD ⇒
コーディング規約違反をチェック ⇒ 冗長なコードをチェック 9
10.
ツールその① 〜PHPCS〜 • 「PHP_CodeSniffer」の略称。 •
PHPパッケージ管理ツール「composer」でインストールでき る。 • 機能 • コードがコーディング規約に合っているかをチェックしてくれる。 10
11.
PSR-2 • 今回採用するコーディング規約名は「PSR-2」。 • そもそもPSRとは? •
PHP-FIGが策定しているコーディング規約で、世界で知られている。 • PSR-0、PSR-1というような連番になっている。 • PSR-2とは? • 多くのPJや一部のFW(Laravel)でも採用されているコーディング規約。 11
12.
PHPCSの実行 • 実行方法 • AtomなどのエディタにPHPCSのプラグインを入れる。 •
コマンドで実行する。 ⇒ 今回はコマンドで実行します! 12
13.
PHPCSの実行 • コマンド説明 • 例 $
phpcs --standard=規約名 ファイルパス $ phpcs --standard=PSR2 ./ PSR2を指定 13
14.
チェックするコード IFの後は半角スペースが必要 引数のカンマの後は 半角スペースが必要 14
15.
PHPCSの実行結果 FILE: /var/www/php/src/Phpcs/PhpcsSample.php ---------------------------------------------------------------------------- FOUND 2
ERRORS AFFECTING 2 LINES ---------------------------------------------------------------------------- 9 | ERROR | [x] Expected 1 space(s) after IF keyword; 0 found 14 | ERROR | [x] Expected 1 space between comma and argument "$b"; 0 found ---------------------------------------------------------------------------- PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY ---------------------------------------------------------------------------- 行数と警告メッセージ ファイルパス [x]となっているものは、 PHPCSと同時にインストールされるPHPCBFで自動修正可能 ⇒ PHPCBFはこの後説明します! 15
16.
PHPCBFについて • 機能 • 規約違反のコードを自動修正してくれる。 •
PHPCSと同じようなコマンドで実行できる。 • コマンド説明 • 例 $ phpcbf --standard=規約名 ファイルパス $ phpcbf --standard=PSR2 ./ 同様にPSR2を指定 16
17.
PHPCBFの実行結果 PHPCBF RESULT SUMMARY ------------------------------------------------------------------------------------------ ------------------------ FILE
FIXED REMAINING ------------------------------------------------------------------------------------------ ------------------------ /var/www/php/src/Phpcs/PhpcsSample.php 2 0 ------------------------------------------------------------------------------------------ ------------------------ A TOTAL OF 2 ERRORS WERE FIXED IN 1 FILE ------------------------------------------------------------------------------------------ ------------------------ Time: 872ms; Memory: 4Mb 修正済の数 修正できていない数 修正したファイル ⇒ 修正方法が複数パターンあるものについては 修正できないこともある 17
18.
ツールその② 〜PHPMD〜 • 冗長なPHPのコードをチェックして警告してくれる。 •
PHPパッケージ管理ツール「composer」でインストールでき る。 • 主なチェック内容 • 短すぎるor長すぎるプロパティ名、変数名などのチェック。 • 複雑すぎる表現、例えばif文の多用などをチェック。 • 未使用の引数、メソッド、プロパティをチェック。 18
19.
PHPMDで使用するルール ルール名 説明 Clean Code
Rules 綺麗なコードを保つためのルール。 Code Size Rules コードのサイズに関連するルール。 Controversial Rules PJのコーディングルールによっては採用しても良いルール。 チェック対象からは外しても問題ないことが多い。 Design Rules コード設計の問題を無くすためのルール。 危険なPHPの関数を使用していないかなどをチェックする。 Naming Rules 命名に関するルール。 プロパティ名や変数名が長すぎないかなど。 Unused Code Rules 未使用の定義に関するルール。 未使用のプロパティや変数がないかをチェックする。 19
20.
PHPMDの実行 • 実行方法 • AtomなどのエディタにPHPMDのプラグインを入れる。 •
コマンドで実行する。 ⇒ PHPCSと同じくコマンドで実行します! 20
21.
PHPMDの実行 • コマンド説明 • 例 $
phpmd ファイルパス 出力形式 ルール1,ルール2,・・・ $ phpmd ./ text cleancode,codesize,controversial,design,naming,unusedcode 21
22.
チェックするコード 【違反しているルール】 Naming Rules 【内容】 プロパティ名が短すぎる 22
23.
PHPMDの実行結果 /path/to/PhpmdSample.php:7 Avoid variables
with short names like $a. Configured minimum length is 3. 違反内容 対象ファイル:行数 ⇒ PHPMDは自動修正の機能が無いため手動での修正が必要 23
24.
PHPUnitの説明 24
25.
PHPUnitとは? • ユニットテストを自動化するためのツール。 • テストコードを書くための機能が様々存在する。 •
PHPパッケージ管理ツール「composer」でインストールでき る。 25
26.
テストコードのメリット • 人が手で画面のテストをするよりもテストコードを書いて自動 実行させた方が正確で速い。 • 修正作業の際に、予想外のところでバグが新たに生まれた時に 気がつくことができる。 •
テストコードを書くことで、対象のメソッドがどういう振る舞 いをするのが正解なのかが実装者以外にも分かる。 ⇒ PHPUnitの基本的な書き方を見ていきます 26
27.
テスト対象のコード 第1引数と第2引数の計算 結果を返すメソッド 27
28.
テストコード TestCaseクラスを継承してそ のクラスのメソッドを使う @testは、テストコードのメ ソッドという扱いになる 第1引数:期待値(予測値) 第2引数:メソッドの結果 28
29.
PHPUnitの実行 • コマンド説明 • 例 $
phpunit ファイルパス(ディレクトリ or ファイル名) $ phpunit ./tests/ 29
30.
PHPUnitの実行結果 bash-4.2# phpunit ./tests/ PHPUnit
7.2.7 by Sebastian Bergmann and contributors. . 1 / 1 (100%) Time: 419 ms, Memory: 4.00MB OK (1 test, 1 assertion) テストが通った数と割合 実行に要した時間とメモリ テストメソッドの数と アサーションメソッドの数 30
31.
基本的な書き方を紹介した上で… • データプロバイダの使い方 • モックの使い方 ⇒
他に便利なPHPUnitの機能を紹介します! 31
32.
データプロバイダ • 1つのテストに対して複数パターンのデータでテストしたい場 合に有効 • データを配列形式で定義したメソッドを用意する。 32
33.
データプロバイダのコード データプロバイダー それぞれの配列の値がsum()の 引数に渡される。 @dataProviderでデータプロバ イダ名(メソッド名)指定。 テストメソッドの引数を定義 できる。 データプロバイダから引数が 渡される。 33
34.
モックの使い方 • そもそもモックとは? • あるクラスのメソッドの戻り値をダミー値にすることができる。 •
そうすることでメソッドの振る舞い(処理内容)を意識しなくて済む。 • モックが使用される場面 • メソッドの中で他のクラスのメソッドを呼んでいる場合 • 他のクラスのメソッド振る舞いを意識せずに自分のメソッドの処理だ けに集中してテストをしたい場合 ⇒ モック使用対象となるコードをまずは見ていきます 34
35.
モック化のイメージ ⇒ 実際のコードを見ていきます 【Class A】 とあるメソッド 【Class
B】 Aから呼び出されているメソッド テスト対象のメソッド モック化対象 35
36.
ソースコード 〜モック化対象〜 うるう年かどうかを boolean型で返すメソッド 36
37.
ソースコード 〜テスト対象〜 LeapYearクラスのメソッドを 呼んでいる。 前スライドのLeapYearクラスを コンストラクタに渡して プロパティにオブジェクトを入れている 37
38.
テストコード 〜モック〜 指定したクラスをモック化 モック化したクラスのメ ソッドの振る舞いを指定 38
39.
Laravelの便利機能の説明 39
40.
Laravelとは? • PHPのフレームワークで最近人気が出てきた。 • 基本はMVCモデルが採用されているフレームワーク。 •
公式ドキュメントが分かりやすく、翻訳も比較的早い。 • artisanコマンドで様々な機能が提供されていて場合によっては 開発工数を大きく削減できる。 40
41.
紹介するLaravelの機能 • マイグレーション • 認証機能の自動生成 •
ルーティング • ミドルウェア ⇒ webアプリケーション開発で良く使いそうな機能 41
42.
マイグレーション • 役割 • データベーステーブルのバージョンコントロール。 •
テーブル定義が記載されているマイグレーションファイルを利用して テーブルを作成する。 • Artisanコマンドで実行可能 • php artisan migrate(テーブル作成) • php artisan migrate:rollback(マイグレーションの巻き戻し) 42
43.
マイグレーションファイルの中身 • ソースコード(一部抜粋) public function
up() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name'); }); } テーブル名 increments:主キー string:VARCHARカラム 43
44.
認証機能の自動生成 • Artisanコマンド • php
artisan make:auth • 自動生成されるもの • ユーザ情報テーブルのマイグレーションファイル • 認証関連の画面(ログイン、ユーザ登録等) • パスワード暗号化 ⇒ まともに自作しようとすると数日かかりそうな認証機能を 一瞬で作成してくれる 44
45.
ルーティング • そもそもルーティングとは? • ここではURLのパスを定義しているもの。 •
特定のコントローラの特定のメソッドがどのURLパスに該当するか。 • 特徴 • 単純な記述でルーティングを定義することが可能。 • Laravelの定義は自由度が高く、好きなURLパス名に簡単に出来る。 • 他のフレームワークでは、コントローラ名やメソッド名にURLパス名 が依存することが多い。 45
46.
ルーティングの書き方 Route::get(‘path1/', ’HogeController@index'); Route::get(‘path2/', ’HugaController@create'); URLパス 好きなパスを設定でき る メソッド名 コントローラ名 46
47.
ミドルウェア • 役割 • URLにアクセスした際、画面を表示させる前にフィルターをかける。 •
例)標準で用意されている認証のミドルウェア(auth) • ⇒未ログイン状態では見れない画面を定義できる。 • ルーティング定義の部分に適用させたいミドルウェア名を記載するこ とで特定のURLのみに適用させることが出来る。 47
48.
ミドルウェア使用例 Route::middleware('auth')->group(function () { Route::get(‘path1/',
’HogeController@index'); Route::get(‘path2/', ’HugaController@create'); }); ⇒ この単純な記述で未ログインでのアクセスを拒否できます ミドルウェア名 ミドルウェアを 適用させたいURLパス 48
49.
まとめ • 静的コード解析ツール • 整ったコードの作成を補助してくれるので効率良く実装を進められる。 •
PHPUnit • テストコードツールを使用することで品質を担保することができる。 • Laravel • 自動生成機能などを駆使することで開発工数の削減につながる。 49
50.
参考・引用リンク • PHPCS • https://github.com/squizlabs/PHP_CodeSniffer •
PHPMD • https://phpmd.org/ • PHPUnit • http://phpunit.readthedocs.io/ja/latest/ • Laravel • https://laravel.com/docs/ 50
51.
ご清聴ありがとうございました! 51
Editor's Notes
#2
初心者向けであることを説明する。 ツールの実例を口頭で説明する。(ジョブ組んでるのかとか)
#3
社内勉強会を開始してみたレポート
#18
ここまで13-14分
#24
ここまで20分
#25
ここまで
#34
ここまで30分
#39
ここまで40分くらい
Download