Upload
Download free for 30 days
Login
Submit Search
今すぐ使えるPHP開発のあれこれ
0 likes
421 views
Yuya Kikukawa
PHP開発に使える技術
Engineering
Read more
1 of 88
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
More Related Content
PDF
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
sasezaki
PDF
HTTPメッセージ、PHPの 事情ば分かっとっと?
sasezaki
PDF
コードを書いて理解する!Enumについて
Takhisa Hirokawa
PDF
PHPerに覚えて欲しい日本語の重要性
Rina Fukuda
PDF
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
sasezaki
PPT
2009 PHP初心者
Hideo Kashioka
PDF
PHP-MLを使用して気軽に機械学習にトライしてみる
Ryo Shibayama
PDF
PHP 8 で Web 以外の世界の扉を叩く
shinjiigarashi
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
sasezaki
HTTPメッセージ、PHPの 事情ば分かっとっと?
sasezaki
コードを書いて理解する!Enumについて
Takhisa Hirokawa
PHPerに覚えて欲しい日本語の重要性
Rina Fukuda
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
sasezaki
2009 PHP初心者
Hideo Kashioka
PHP-MLを使用して気軽に機械学習にトライしてみる
Ryo Shibayama
PHP 8 で Web 以外の世界の扉を叩く
shinjiigarashi
What's hot
(19)
PPTX
CakePHP3.x での各種実装例 ~| PHP Tech Bash 20171121 ~
諒一 上野
PDF
PHPの今とこれから2018
Rui Hirokawa
PDF
PHP で実行中のスクリプトの動作を下から覗き見る
shinjiigarashi
PPTX
Redmineで始めるチケット駆動開発
Takuya Sato
PDF
ECMAScript没proposal追悼式
京大 マイコンクラブ
PPT
PHP buildpackでhackとphalconが動いた件について
健治郎 安井
PPTX
コンピュータシステムの理論と実装10
Yoko Yama
PDF
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
PDF
Phpstormちょっといい話
Hisateru Tanaka
PPTX
PHP基礎勉強会
Yuji Otani
PDF
実用Brainf*ckプログラミング入門編
京大 マイコンクラブ
PDF
RFC: "var" Deprecation
y-uti
PDF
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
shinjiigarashi
PPTX
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
Keiichi Hagiwara
PPTX
App Engine と いまどきのPHP
sokamo1975
PDF
5分でわかるPHPのクロージャ(web公開版)
hajikami
PDF
02 はじめてのメール送信
文樹 高橋
PDF
PHPカンファレンス2016 初心者セッション
Hideo Kashioka
PDF
PHPでセキュリティを真面目に考える
Takuya Sato
CakePHP3.x での各種実装例 ~| PHP Tech Bash 20171121 ~
諒一 上野
PHPの今とこれから2018
Rui Hirokawa
PHP で実行中のスクリプトの動作を下から覗き見る
shinjiigarashi
Redmineで始めるチケット駆動開発
Takuya Sato
ECMAScript没proposal追悼式
京大 マイコンクラブ
PHP buildpackでhackとphalconが動いた件について
健治郎 安井
コンピュータシステムの理論と実装10
Yoko Yama
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
Phpstormちょっといい話
Hisateru Tanaka
PHP基礎勉強会
Yuji Otani
実用Brainf*ckプログラミング入門編
京大 マイコンクラブ
RFC: "var" Deprecation
y-uti
PHP 8 と V8 (JavaScript) で速さを見比べてみよう!
shinjiigarashi
あるあるLT〜サーバーサイドエンジニア〜 Vol.3
Keiichi Hagiwara
App Engine と いまどきのPHP
sokamo1975
5分でわかるPHPのクロージャ(web公開版)
hajikami
02 はじめてのメール送信
文樹 高橋
PHPカンファレンス2016 初心者セッション
Hideo Kashioka
PHPでセキュリティを真面目に考える
Takuya Sato
Ad
Viewers also liked
(12)
DOC
CURRICULUM____VITAE CIVIL ENGIMEER
Riaz Mohammad
PDF
CSWS
Naushad Ali Azim (CSWE)
DOCX
여성흥분제『 http://x6.na.to 』 톡 w2015 ♡ 여성흥분제판매,여성흥분제약효,여성흥분제구입처,여성흥분제구매처,여성흥분제파는곳
무우 단
PDF
dsadw
mbakaya99
DOC
CV
hamzeh mharmeh
PPTX
Sun Bear Overview
Mike Moore
PPTX
Wexcoin presentation russ.pptx
Wexcoin
PPTX
STL Lab Yubo Liu: Rethinking the Evolution of China's University Campus Morph...
STLLab
PDF
Certificazione delle competenze. Digital Certification Program. Paolo Brizzi
Digital-Coach.it
PDF
JCIHK Recommended course - supervising skills - Be the SUPERvisor
Pong Yau
PDF
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
KEY
フラットなPHPからフレームワークへ
Masao Maeda
CURRICULUM____VITAE CIVIL ENGIMEER
Riaz Mohammad
CSWS
Naushad Ali Azim (CSWE)
여성흥분제『 http://x6.na.to 』 톡 w2015 ♡ 여성흥분제판매,여성흥분제약효,여성흥분제구입처,여성흥분제구매처,여성흥분제파는곳
무우 단
dsadw
mbakaya99
CV
hamzeh mharmeh
Sun Bear Overview
Mike Moore
Wexcoin presentation russ.pptx
Wexcoin
STL Lab Yubo Liu: Rethinking the Evolution of China's University Campus Morph...
STLLab
Certificazione delle competenze. Digital Certification Program. Paolo Brizzi
Digital-Coach.it
JCIHK Recommended course - supervising skills - Be the SUPERvisor
Pong Yau
PHP7で変わること ——言語仕様とエンジンの改善ポイント
Yoshio Hanawa
フラットなPHPからフレームワークへ
Masao Maeda
Ad
Similar to 今すぐ使えるPHP開発のあれこれ
(20)
PDF
Phpでアプリケーションサーバー
k-motoyan
PPTX
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
Mika Kane
PPTX
20110910 闇鍋的php魔改造
do_aki
PDF
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
Yuta Sakurai
PPT
NanoA
Kazuho Oku
PDF
5分でわかるphalcon php
Yusaku Kinoshita
PDF
5分でわかるPhalconPHP
Shohei Tai
PDF
CodeIgniter Con Tokyo 2011 資料
Takako Miyagawa
PPT
20090801phpstudy Sanemat
Kenichi Murahashi
PDF
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
Hisateru Tanaka
PDF
AspectMock 最強のモッキングフレームワーク
kenjis
PDF
PHP Now and then 2018 : WordPress Special Edition
Rui Hirokawa
PDF
Zend OPcacheの速さの秘密を探る
Yoshio Hanawa
PPTX
3流プログラマーから見たPhalconとWISP
YamaYamamoto
PDF
PHPカンファレンス北海道 php技術者認定上級試験を受けてみた
Fumito Mizuno
KEY
php-timecopを実戦投入してみた
Yoshio Hanawa
PDF
フレームワークを使うべき 3 つの理由
Kenichi Mukai
PDF
PHPの今とこれから2016
Rui Hirokawa
PDF
FuelPHP活用事例
Yusuke Naka
PPTX
PHPCON_TOKYO_2022_Bigginer.pptx
Hideo Kashioka
Phpでアプリケーションサーバー
k-motoyan
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
Mika Kane
20110910 闇鍋的php魔改造
do_aki
PHPカンファレンス2013 今ドキのPHPの書き方 ~PHP逆引きレシピ改訂版~
Yuta Sakurai
NanoA
Kazuho Oku
5分でわかるphalcon php
Yusaku Kinoshita
5分でわかるPhalconPHP
Shohei Tai
CodeIgniter Con Tokyo 2011 資料
Takako Miyagawa
20090801phpstudy Sanemat
Kenichi Murahashi
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
Hisateru Tanaka
AspectMock 最強のモッキングフレームワーク
kenjis
PHP Now and then 2018 : WordPress Special Edition
Rui Hirokawa
Zend OPcacheの速さの秘密を探る
Yoshio Hanawa
3流プログラマーから見たPhalconとWISP
YamaYamamoto
PHPカンファレンス北海道 php技術者認定上級試験を受けてみた
Fumito Mizuno
php-timecopを実戦投入してみた
Yoshio Hanawa
フレームワークを使うべき 3 つの理由
Kenichi Mukai
PHPの今とこれから2016
Rui Hirokawa
FuelPHP活用事例
Yusuke Naka
PHPCON_TOKYO_2022_Bigginer.pptx
Hideo Kashioka
今すぐ使えるPHP開発のあれこれ
1.
伝える第7回- 今すぐ使える PHP開発のあれこれ-
2.
AGENDA 1. 伝えるとは 2. 自己紹介 3.
最近のphp界隈の流れ 4. 今さら聞けないcomoser 5. パッケージ管理の基本 6. composerコマンド 7. コーディング規約チェック 8. PHPコードの静的解析 9. PhpStorm 10. .editorconfig 11. Vagrant とAnsible
3.
伝えるとは
4.
「伝える」とはスピーカーが 伝えたいことをただ伝えて、 質問タイムは薄めの勉強会です。
5.
自己紹介
6.
おまえ誰よ フリーランスのエンジニア 趣味 プログラミング サーバー構築 スキル php フロントエンドやりたい Ansible
7.
最近のPHP界隈の流れ
8.
フルスタックからコンポーネント指向へ マイクロフレームワークの台頭 PEARからcomposerへ PSRの策定
9.
今さら聞けないCOMOSER
10.
COMPOSERとはphpにおけるパッケージ管理ツール 昔でいうところのPEARに近いけど概念が全然違う RUBYのgem、nodejsのnpmに相当 後発なため、かなり柔軟になっている ただし、peclは現役。peclの代替はできない
11.
PACKAGIST Packagist composerでダウンロードできる パッケージがまとまっているサイト 遅い
12.
Packagist jp Packagistが遅いために作られた日本のミラーサイト 下記コマンドで設定を変更できる composer config
-g repositories.packagist composer https://packagist.jp
13.
PACKAGIST以外からのインス トール
14.
GIT リポジトリPackagistに登録されていなくても Github、Github Enterpriseからのインストールもできる バージョンとかもちゃんとやってくれる
15.
SATIS Composerプロジェクトが出している パッケージを使うことで 自前でPackagistを立てることもできる composerは に探しに行って、 なかったらPackagistに探しに行くという動きをする
16.
SATISを使うと何が嬉しいかに依存パッケージを登録しておくことで、 Packagistが死んでもデプロイに影響がでない Packagistに登録できない類の自前のパッケージを 登録しておくことで、他のものと同様にインストールできる
17.
パッケージ管理の基本
18.
パッケージ管理いろいろyum apt homebrew npm gem bower ansible-galaxy
19.
設定ファイル COMPOSER.JSON
20.
パッケージを管理する設定ファイル 主にどんなパッケージをインストールするか書いておく もしくは自分で公開するパッケージの情報を書いておく 他にはcomposerの振る舞いを記述していく 最低限のバージョン指定、追加のリポジトリなど 直接編集もできるが基本はコマンド叩くと更新される
21.
ロックファイル COMPOSER.LOCK
22.
インストールするパッケージのバージョンを 完全指定してあるファイル 自動で作成/更新される 開発環境と本番環境で全く同じバージョンを インストールするのに使ったりする
23.
インストール先
24.
GLOBAL 設定にもよるが ユーザーのホームディレクトリ配下に入れるときに使う どのプロジェクトでも使用したいものを入れる
25.
PROJECT プロジェクト配下のvendorディレクトリ配下に インストールして使う クラスとして使いたいようなものを入れる
26.
GLOBALかPROJECTかコマンドライン的に使うものはglobalに projectで使うものはprojectに入れる phpcs、phpmd、phpunitなどは コマンドラインとして使うのでglobalにいれておいたほうが 使い勝手がよい phpunitは両projectにもいれる コマンドラインとしてもパッケージ(クラス)としても使うため
27.
DEVかそうでないか使用するパッケージの中には、 開発環境のみで使用したいものがある 例えばphpunit そういったものはdevオプションを 使用してインストールすることで、 開発環境でのみインストールすることができる
28.
タスクパッケージをインストールし終わった後に 実行するタスクを定義することができる 定義するのは設定ファイル( )
29.
COMPOSERコマンド
30.
GLOBAL いきなりだが、これは実質コマンドではない 各(サブ)コマンドの前にglobalを置くことで global環境に対してコマンドを実行する
31.
INIT の雛形を作る
32.
などはインストーラーがそもそもあったりするので インストーラーでプロジェクト作るとそもそも が出来上がっている状態になる
33.
REQUIRE 開発するときに最もお世話になるコマンド パッケージのインストールに使用する
34.
INSTALL リポジトリからクローンしてきた直後など、環境構築時に叩くあまり叩く 機会は多くないかも composer.lockが存在すれば、 そのバージョンの情報を元にパッケージをインストールする なければ、composer.jsonを元にインストールする
35.
UPDATE よく使う すでにインストールしているパッケージの バージョンを更新したいときに使用する これを実行することで、composer.lockも更新される
36.
CONFIG
37.
設定の確認ーー ーー
38.
リポジトリの追加Packagistに登録されているものは、 リポジトリの追加なしでインストールできる そうでない場合はリポジトリの追加が必要
39.
コマンドでやる場合composer global config repositories.vendor-name/foo-codesniffer '{"type":
"vcs", "url": "https://github.com/vandor-name/foo-codesniffer.git", "version":"master"} ※改行しているけど実際は1行
40.
COMPOSER.JSONに書く場合"repositories": [ { "type":"package", "package": { "name":
"vendor-name/foo-codesniffer", "version":"master", "source": { "url": "https://github.com/vendor-name/foo-codesniffer.git", "type": "git", "reference":"master" } } } ], "require-dev": { "vendor-name/foo-codesniffer": "dev-master" },
41.
注意古い環境でcomposerを動かすと、 detect_unicodeという php.ini周りの設定のためにエラーが出ることがある。 そんなときは、 php -d detect_unicode=false
/path/to/composer install とphpのオプション指定すると使える。
42.
コマンドと各ファイル
43.
その1
44.
その2
45.
その3
46.
コーディング規約チェック
47.
PSRとはPHP Standards Recommendations PSRには0から14までのカテゴリがあり、 それぞれが違う範囲をカバーしている。 ただ、全部を気にするのは辛い。 ライブラリアンは別だが 実務上は(とりあえず)PSR1-4まで気にしておけばいい。 もっというと、PSR2だけでいい。
48.
ただ、存在は知っておこう でないと、クラス読み込めないエラーが出た時に どうしていいかちんぷんかんぷん
49.
PHP-FIG http://www.php-fig.org/ PSRは、php-figという団体が策定している php標準のコーディング規約 php-figには各フレームワークが参加している
50.
PSR0 オートロードに関する規約 ただし、duplicateなので、 今からやるなら後述のPSR4を使うべき
51.
PSR1 PSR0に従うこと クラス定義の中に読み込んだだけで影響のあるものを入れない php.iniの値を変える なんかいきなりechoしている requireしている クラスやメソッドの命名規則など
52.
PSR2 PSR1を前提としての細かいコーディング規約 ifの括弧の位置とか。 コーディングする上で1番気にしておくべきところ。
53.
PSR3 ロガーに関する規約 ロガーのインターフェースとか ログレベルとか
54.
PSR4 オートロードに関する規約 PSR0の後継 ディレクトリのパスを名前空間と揃える形のやつ 名前空間を持ち出してきてるので、5.2以前は対象外
55.
PHP CODESNIFFER(PHPCS)
56.
用語Rule(Source) ruleset Standard report
57.
RULE(SOURCE) RuleといったりSourceといったりする ↓ のようなドット区切りの規約のこと 先頭から という名前空間になっている。
58.
RULESET Ruleをまとめたもの xmlで記述する
59.
STANDARD rulesetに付いている名前デフォルトであるのは下記 PEAR PSR1 PHPCS Squiz PSR2 Zend rulesetはインクルードできるので 使いたいRule、除外したいRuleを うまく設定して自前のを作るとよい
60.
REPORT 標準出力への表示形式 オプションで指定できる summary source などが指定できる
61.
コマンドイメージphpcs --standard=vendor/path/to/sniffer/ruleset.xml path/to/directory phpcs
--report=source -s path/to/file.php
62.
実行結果の例$ phpcs /path/to/code FILE:
/path/to/code/myfile.php -------------------------------------------------------------------------------- FOUND 5 ERROR(S) AFFECTING 5 LINE(S) -------------------------------------------------------------------------------- 2 | ERROR | Missing file doc comment 20 | ERROR | PHP keywords must be lowercase; expected "false" but found "FALSE" 47 | ERROR | Line not indented correctly; expected 4 spaces but found 1 51 | ERROR | Missing function doc comment 88 | ERROR | Line not indented correctly; expected 9 spaces but found 6 -------------------------------------------------------------------------------- FILE: /path/to/code/yourfile.php -------------------------------------------------------------------------------- FOUND 1 ERROR(S) AND 1 WARNING(S) AFFECTING 1 LINE(S) --------------------------------------------------------------------------------
63.
PHPCBF phpcsのルールにそって、ある程度自動で修正してくれるツール
64.
PHPコードの静的解析
65.
PHP MESS DETECTOR(PHPMD) phpのコードでバグになる可能性がある コードを検知してくれるツール
66.
RULESET CodeSnifferと同様にMess Detectorも ルールを持っている。 そのルールをカテゴライズしている単位 一つのRulesetの中にいくつかのRuleを持っている
67.
一覧Ruleset 内容 cleancode きれいなコードかどうか codesize
コードの複雑さチェック controversial 命名規則チェック design 設計上の問題 naming 変数や関数の名称チェック unusedcode 使われていない要素の検知
68.
コマンドイメージ
69.
PHPSTORM
70.
PHPSTORMとはJetbrains社が出しているPHP用のIDE 2015年のPHPカンファレンスでは、6割くらいの人が使っていた Monokaiのテーマがおすすめ viキーバインド使える Eclipse風のキーバインドも使える phpcs、phpmdはリアルタイムで警告してくれる phpunitも叩ける phpcbfも叩ける 部分的だけど日本語対応できるらしい
71.
ECLIPSEより良い所補完が優秀 eclipseとくらべて Laravel + ide-helper ファイル移動が優秀 CakeStorm Laravel
Plugin 軽い eclipseとくらべて syntax highlightが優秀 リファクタリングが優秀
72.
他のIDEができることまぁ、大抵できる デバッガを使用したステップ実行 した時にサーバーへのSFTP git操作 ファイルの履歴管理(ローカル)
73.
.EDITORCONFIG
74.
.EDITORCONFIGとは様々なエディターで利用できる、共通の書式設定ファイル 改行コード ハードタブ、ソフトタブの指定 行末に空行入れる、入れない 文字コード などを設定ファイル化したもの
75.
例こんな感じ root = true [*] indent_style
= space indent_size = 4 end_of_line = lf insert_final_newline = true trim_trailing_whitespace = true [*.bat] end_of_line = crlf [*.yml] indent_style = space indent_size = 2
76.
使い方とりあえず、このファイルをプロジェクトルートに置く あとは、対応するエディタで開けば勝手にロードしてくれる 最近のエディタであれば、 プラグインがあることが多い ただし、各エディタのプラグインの対応状況が バラバラなので効かない場合もある
77.
PHPCSとのすみ分けphpcsで賄える部分がほとんどなので、 phpcs入れてればまぁ、大丈夫。 でも、js、md、ctp、shellなどのphp以外のところを カバーできるのでいれておいて損はない phpcsでも、js、ctpはカバーできるけども。。
78.
VAGRANT とANSIBLE
79.
VAGRANTとは各種仮想マシンを操作するためのコマンドラインラッパー 操作できる仮想マシンはいくつかあるが、 VirtualBoxが一般的 pluginをインストールすれば、 AWS EC2, Azure,OpenStackなども操作できる
80.
BOX 仮想マシンのイメージ Boxというファイルで管理する イメージなので基本ファイル容量がでかい 数百Mbから数Gb
81.
VAGRANTFILE 仮想マシンの設定などを行う設定ファイル rubyの書式で書く
82.
ANSIBLEと組み合わせる
83.
ANSIBLEとは環境構築やサーバーに対して 何かをするときに便利なツール 秘伝のタレ的な、サーバー構築手順を プログラムにできる 冪等性を担保しやすい
84.
PLAYBOOK Playbookというファイルに 様々なタスクを書いておくことで 環境構築を行っていける
85.
VAGRANTとANSIBLE Vagrant単体でも十分威力を発揮するが、 Ansibleと組み合わせると鬼に金棒 Vagrantの弱点は、差分管理が難しいとこ
86.
こんな時に困る
87.
だからAnsibleで環境構築を 自動化しておけば、 まっさらなベースのBoxから プロジェクト環境がすぐに作れる
88.
ご静聴有難うございました
Download