SlideShare a Scribd company logo
1 of 81
Download to read offline
フレームワークを使うべき
3 つの理由
PHP カンファレンス関西 2014
2014/6/28 向井賢一
ご来場
ありがとうございます
自宅(横浜)の
近所の居酒屋の看板
漫☆画太郎?
会場のスタッフの皆様
マジでリスペクト!
自己紹介
• 向井賢一	

• 職業 : 雑用係	

• https://twitter.com/mukaken	

• https://www.facebook.com/mukaken
運営しているサイト・イベント
• FuelPHP 日本語ニュース (facebook)
• Laravel 日本語ニュース (facebook)
• FuelPHP 英語コミュニティ (facebook)
• FuelPHP 日本語コミュニティ (facebook)
• Laravel jp 日本語コミュニティ (facebook)
• Laravel Meetup Tokyo (次回 7/4(金) 19:00- 東京都渋谷区)
好きな曲
PHP The Anthem
http://www.youtube.com/watch?v=S8zhmiS-1kw
注意!
PHPWebフレームワークは
PHPが分からないと
使えません
$factorial = function($n) use (&$factorial) {!
if ($n <= 1)!
return 1;!
else!
return $n * $factorial($n - 1);!
};!
!
var_dump($factorial(6));
Webアプリケーションフレームワーク
の事を
フレームワーク
と略しています
セッションの内容
• PHP の文法は一通り理解したが、 Web アプリ
ケーションフレームワーク を使った事がない方
を対象にべた書き(モノリシック)な PHP プログ
ラムを、Web アプリケーションフレームワーク
を使い修正し、何が違うのかを比較をします。
• PHP の Web アプリケーションフレームワークで
代表的なものを紹介し、それぞれを比較します。
今朝の基調講演で郡山さんが話さ
れていた「フレームワークとは?」
• アプリケーションの制約
• 原則に従う
• 長期的な変更
当セッションで
言いたい事は同じ!
セッションの目次
• フレームワークの説明でよく使われる用語の解説
• なぜフレームワークを使うのか ?
• 実際に PHP を使って説明
• PHP フレームワークの種類
• 参考サイト 参考文献
• まとめ
フレームワークの説明で
よく使われる用語の解説
MVC モデル
• 現在の フレームワーク で主流のアーキテクチャ
• モデル、ビュー、コントローラの3つに分けて実
装する
• Web で使われているフレームワークは、正確に
は元祖 MVC ではなく MVC 2
DRY 原則
• DRY は Don’t Repeat Yourself (繰り返しをさける
こと)の略
• プログラムを作る際にコピー&ペーストをする
と、修正するときに大変な事になりますよ、と
の教訓
『達人プログラマー』の P.27 より
リファクタリング
• コードの記述のやり直し、再作業、再設計
• リファクタリングを行う場面は、二重化、直交
してない設計、時代遅れの知識、パフォーマン
スに問題がある場合
『達人プログラマー』の P.188 より
コーディング規約
• PHP はいろいろな記述ができるが、記述の統一
性をもたせること
• 主には、命名規則、コーディングスタイル、禁
止事項の事
• 例 : インデントをハードタブかソフトタブかのど
ちらかに統一する
• 一定のルールに従ってファイルやクラスの名前を
決めていれば設定不要で動作する機構
• Ruby on Rails が取り入れた設計思想で話題に
なった
• 逆の設計思想で「規約より設定」を採用したフ
レームワークも多数ある
設定より規約 (CoC)
フレームワークの
イメージ
ベテランのエンジニアに聞くと!
本棚に例えると
• 何も考えずに本を本棚にしまうと、どこに何の
本があるか分からない
• フレームワークを使うと図書館のように整理整
頓された本棚になり、どこに何があるかは一目
瞭然
なぜフレームワークを
使うのか ?
現代のソフトウェア開発の問題・要求
いままでの開発で、
こんな事に困った事ありませんか?
• チームで開発するさいに、それぞれの開発スタイル
がバラバラで、コミュニケーションに時間がかかる
• チームで開発するさいに、新たにチームに加わって
もらう開発者に説明するのに時間がかかりすぎる
• 過去に自分で開発したソースを読み返すと、どこに
何の記述がしてあるか分からなくて、解読するのに
時間がかかる
近年のビジネス速度
• 1990年代までのソフトウェアは業務の効率化を
目的として作られ、一度作ったら長期間変更し
ないまま使い続ける
• 現在のソフトウェアはビジネスの変化に合わせ
て、その都度変更していく
• 現在ではソフトウェアのリリースサイクルが劇的
に短くなってきている
現在のソフトウェアは
常に作り替えなければならない
Amazonは1時間に1,000回以上
デプロイしているそうです
実際に PHP を使って
説明
http://www.slideshare.net/brtriver/php-14295877
『フラットなPHPからフレームワークへ』から抜粋
前田さんの発表資料から引用・抜粋させて
いただきました。
モノリシックなPHPを
フレームワークに
書き換える
リファクタリングよって
モノリシックなPHP
View部分の分離
アプリケーション(ドメイン)部分の分離
フレームワーク
DBからデータ取得し
取得したデータを
HTMLで表示する
<?php
$pdo = new PDO(
'mysql:host=localhost;dbname=blog_db;charset=utf8',
'myuser',
'mypassword',
array(PDO::ATTR_EMULATE_PREPARES => false)
);
$stmt = $pdo->query('SELECT id, title FROM post');
?>
!
<html>
<head>
<title>投稿の一覧</title>
</head>
<body>
<h1>投稿の一覧</h1>
<ul>
<?php while ($row = $stmt->fetch(PDO::FETCH_ASSOC)): ?>
<li>
<a href="show.php?id=<?php echo htmlspecialchars($row['id'], ENT_QUOTES, 'utf-8') ?>">
<?php echo htmlspecialchars($row['title'], ENT_QUOTES, 'utf-8') ?>
</a>
</li>
<?php endwhile; ?>
</ul>
</body>
</html>
DBからデータ取得
取得したデータを表示
list.php
Browser PHP + HTML
list.php
クライアント サーバー
リクエスト
レスポンス
悪い点
アプリケーションの拡張性が無い
体系化されていない
再利用性がない
View部分の分離
<?php
$pdo = new PDO(
'mysql:host=localhost;dbname=blog_db;charset=utf8',
'myuser',
'mypassword',
array(PDO::ATTR_EMULATE_PREPARES => false)
);
$stmt = $pdo->query('SELECT id, title FROM post');
?>
!
<html>
<head>
<title>投稿の一覧</title>
</head>
<body>
<h1>投稿の一覧</h1>
<ul>
<?php while ($row = $stmt->fetch(PDO::FETCH_ASSOC)): ?>
<li>
<a href="show.php?id=<?php echo htmlspecialchars($row['id'], ENT_QUOTES, 'utf-8') ?>">
<?php echo htmlspecialchars($row['title'], ENT_QUOTES, 'utf-8') ?>
</a>
</li>
<?php endwhile; ?>
</ul>
</body>
</html>
show.php
ロジック部分
View(HTML)部分
show.php
<?php
$pdo = new PDO(
'mysql:host=localhost;dbname=blog_db:charset=utf8',
'myuser',
'mypassword',
array(PDO::ATTR_EMULATE_PREPARES => false)
);
$stmt = $pdo->query('SELECT id, title FROM post');
!
// HTML部分のコードを読み込む
require 'templates/list.php';
別ファイルに分離
ロジック部分
Browser PHP
list.php
クライアント サーバー
リクエスト
レスポンス
HTML
template/list.php
view
controller
Browser PHP
list.php
クライアント サーバー
リクエスト
json
template/list-json.php
view
controller
レスポンス
テンプレートの変更に強い
View部分の分離
良い点
アプリケーション(ドメイン)
部分の分離
<?php
$pdo = new PDO(
'mysql:host=localhost;dbname=blog_db:charset=utf8',
'myuser',
'mypassword',
array(PDO::ATTR_EMULATE_PREPARES => false)
);
$stmt = $pdo->query('SELECT id, title FROM post');
データベースへ接続する
index.php
全てのポストを取得する
データベースへ接続する
全てのポストを取得する
ドメイン
model.php に分離
<?php
!
// model.php
!
function get_database_connection()
{
$pdo = new PDO(
'mysql:host=localhost;dbname=blog_db;charset=utf8',
'myuser',
'mypassword',
array(PDO::ATTR_EMULATE_PREPARES => false)
);
return $pdo;
}
!
function get_all_posts()
{
$pdo = get_database_connection();
!
$stmt = $pdo->query('SELECT id, title FROM post');
$posts = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$posts[] = $row;
}
return $posts;
}
model.php
get_database_connection
get_all_posts
リファクタリング後のlist.php
<?php
require 'model.php';
!
$posts = get_all_posts();
!
require 'templates/list.php';
コントローラーは制御するだけ
ロジック読込
全ポストを取得
ビュー読込
コントローラが本来のコントローラーに
良い点
アプリケーション(ドメイン)部分の分離
シンプルなMVC
Browser PHP
list.php
クライアント サーバー
リクエスト
レスポンス
HTML
template/list.php
view
controller
Logic
model.php
model
get_all_posts
$POSTS
フレームワークを使って
書き直したら
PHP でメジャーなフレームワークを
使って構築してみます
• Codeigniter を使用
• 覚える事が少ないので初心者向き
• バージョン 2系 を使います
デモ
フレームワークを
使っても失敗する例
フレームワークを使っても
意味がない例
よくある失敗例
• フレームワークの約束(設計思想)に沿って作って
ない (例 : フレームワークが用意した設定ファイ
ルがあるのに、違う箇所に設定を書いてしまう)
• 通称ファット・コントローラとよばれている、
動くからといって何の処理も1カ所に記述してし
まう
PHP フレームワーク
の種類
PHP の
フレームワークといえば?
•Laravel - 10,516
•Symfony - 8,536
•CodeIgniter - 7,760
•Zend Framework 2 - 4,763
Github ★の数
2014/6/27現在
Google トレンド (世界)
http://www.google.com/trends/explore#q=Laravel%2C%20symfony%2BSymfony2%2C
%20Codeigniter%2C%20Yii%2C%20CakePHP&cmpt=q
PHPは歯ブラシである
PHPは歯ブラシくらい興奮に値する。
シンプルで、毎日使う便利な道具。
http://j.ktamura.com/archives/1390
PHPの発案者 : Rasmus Lerdorf
プログラミング言語の分類
高級品 Haskell
OCaml
F#
Scala
Ruby
Python
C
Java
C#
日用品 PHP
小規模 大規模
※高級品は使うのに覚悟がいる、日用品は手軽に使える、という意味です
PHP フレームワークの分類
高級品 BEAR.Sunday Symfony
CakePHP
Zend
Framework 2
日用品
Laravel
CodeIgniter
Yii
小規模 大規模
他言語でイメージ
言語 大規模重量 高速軽量
PHP Symfony
Laravel
CodeIgniter
Ruby Ruby on Rails Sinatra
Python Django Flask
Haskell Yesod Snap
世界での転職市場の求人数
•CodeIgniter 54件
•Symfony 50件
•CakePHP 48件
•Laravel 37件
•FuelPHP 2件
http://www.monster.com/
MONSTER 2014/6/27 調査
各フレームワークの	

比較
Laravel
• URL : http://laravel.com/
• ライセンス : MIT
• 対応する PHP : 5.4 以上
• 安定版最新バージョン : 4.2
• 開発元 : taylor otwell
• 日本語のドキュメント : あり
Laravel の特徴
• 近年、爆発的に人気急上昇
• PHP ではないようなキレイなソースが書ける
• 日本語の書籍が充実
• Laravel の書籍 まとめ http://qiita.com/mukaken/items/
2058a193ee0ce6fbfd30
• 信頼性の高い Symfony エコスステムの上に構築
Symfony
• URL : http://symfony.com
• ライセンス : MIT
• 対応する PHP : 5.3.3 以上
• 安定版最新バージョン : 2.5
• 開発元 : フランスのSensio社
Symfony の特徴
• 大規模重厚
• 多機能な分、インストールや習得に多くの時
間がかかる
• 重いといわれていたが、2で改良され、シンプ
ル・高速
• メンテナンスのロードマップが明確に提示
• 「PHP界のインフラ」と言われている
Laravel と Symfony の違い
http://www.reddit.com/r/PHP/comments/1bdln1/symfony2_vs_laravel/c96ohf1
Laravel の作者 Taylor Otwell 曰く「Symfony 2 と Laravel
4 は Debian と Ubuntu の関係に近い」だそうで
す。
!
Taylor Otwell が Symfony のカンファレンスに参加したり、
逆に Symfony プロジェクト の Fabien が Laravel のカンファレンス
に参加したりと、お互いを意識しながらプロジェクトを進めてい
る。
CodeIgniter
• URL : http://codeigniter.com
• ライセンス : CodeIgniter License
• 対応する PHP : 5.2.4 以上
• 安定版最新バージョン : 2.2.0
• 開発元 : アメリカのEllisLab
• 日本語のドキュメント : あり
CodeIgniterの特徴
• 軽量高速
• 小規模開発向け
• 日本国内ではライセンス問題で話題になったが、
国外ではそれほどでもない感じがする
• 世界では根強い人気
• 現在、開発元が売りに出している
• 国内での採用実績 : MTV Japan
FuelPHP
• URL : http://fuelphp.com
• ライセンス : MIT
• 対応する PHP : 5.3 以上
• 安定版最新バージョン : 1.7.1
• 開発元 : コミュニティ
• 日本語のドキュメント : あり
FuelPHPの特徴
•軽量高速
•小規模開発に向いている
•規約より設定 (覚える事が少ない)
•イースター・エッグが満載(喋るなど)
•作る事に主眼を置いている
•CodeIgniter に使い方が似ている
Codeigniter vs FuelPHP
http://ilikekillnerds.com/2012/10/codeigniter-vs-fuelphp-revisited/
Documentation
ORM/
Database
Abstraction
PHPの互換性
The
Community
Codeigniter
選ぶポイントにな
るほどすばらしい
本格的なORMほど
ではないが
database query
builder がある
変化している
が、レガシー
PHPサポート
による肥大化
かなり巨大
FuelPHP
新しいデザイン
CIほど堅牢ではな
い
強力な ORM
PHPの新機能
をサポート
より活発になっ
てきている
10/25
CakePHP
• URL : http://cakephp.org
• ライセンス : MIT
• 対応する PHP : 5.2.8 以上
• 安定版最新バージョン : 2.5.2
• 開発元 : アメリカのCakeソフトウェア財団
CakePHPの特徴
• 小・中規模向け
• 設定よりも規約(多くのルールがある)
• CakePHP2は、内部の構造や基本的なルール
が見直された
• 用語がケーキ関連
参考サイト・文献
参考サイト
• フラットなPHPからフレームワークへ
• http://www.slideshare.net/brtriver/php-14295877
PHP でアーキテクチャを
学ぶならこの本
効率的なWebアプリケーションの作り方
~PHPによるモダン開発入門
パーフェクトPHP
アーキテクチャー集で
有名な本
ソフトウェアアーキテクチャ
ソフトウェア開発のためのパターン体系
http://www.kindaikagaku.co.jp/information/kd0283.htm
2000.12.04発売
未だに、いろいろな文献から
よく引用されている
プログラマーの心得的な本
達人プログラマー
システム開発の職人から名匠への道
その他1
Chef実践入門
~コードによるインフラ構成の自動化
CakePHP2 実践入門
その他2
Webアプリケーション設計・実装のための
フレームワーク活用の技術
Software Design (ソフトウェアデザイン) 2014年4月号
なぜMVCモデルは誤解されるのか?
ウンチクを語りたい人に
おすすめの本
SMALLTALKで学ぶ オブジェクト指向プログラミングの本質
Smalltalk という言語で
MVC について語られています
まとめ
フレームワークを使う3つの理由
• チーム開発のさいの共通認識になる
• 整理整頓された見渡しの良いプログラムになり
変更が容易になる
• 近年のビジネス速度の変化に柔軟に対応できる
アーキテクチャの構築ができる
ご清聴
ありがとうございました

More Related Content

What's hot

PHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作ったPHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作ったHironobu Saitoh
 
〜laravel で学ぶ MVC
 〜laravel で学ぶ MVC 〜laravel で学ぶ MVC
〜laravel で学ぶ MVCmikakane
 
PHPデプロイツールの世界
PHPデプロイツールの世界PHPデプロイツールの世界
PHPデプロイツールの世界Yuuki Takezawa
 
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情Junichi Ishida
 
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSDrupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSTomoki Hasegawa
 
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm晃 遠山
 
魔法少女 Laravel 2014
魔法少女 Laravel 2014魔法少女 Laravel 2014
魔法少女 Laravel 2014Kenichi Mukai
 
PHPerに覚えて欲しい日本語の重要性
PHPerに覚えて欲しい日本語の重要性PHPerに覚えて欲しい日本語の重要性
PHPerに覚えて欲しい日本語の重要性Rina Fukuda
 
Laravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージLaravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージYuta Nagamiya
 
Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩Yuuki Takezawa
 
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjPhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjHisateru Tanaka
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Tokuhiro Matsuno
 
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014Yuuki Takezawa
 
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansaiHisateru Tanaka
 
PHPの今とこれから2015
PHPの今とこれから2015PHPの今とこれから2015
PHPの今とこれから2015Rui Hirokawa
 
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションPHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションHideo Kashioka
 
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろうPHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろうTaiji INOUE
 
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-Masashi Shinbara
 
PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺Shogo Kawahara
 

What's hot (20)

PHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作ったPHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作った
 
〜laravel で学ぶ MVC
 〜laravel で学ぶ MVC 〜laravel で学ぶ MVC
〜laravel で学ぶ MVC
 
Laravel5.1 Release
Laravel5.1 ReleaseLaravel5.1 Release
Laravel5.1 Release
 
PHPデプロイツールの世界
PHPデプロイツールの世界PHPデプロイツールの世界
PHPデプロイツールの世界
 
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
 
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSDrupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
 
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm
 
魔法少女 Laravel 2014
魔法少女 Laravel 2014魔法少女 Laravel 2014
魔法少女 Laravel 2014
 
PHPerに覚えて欲しい日本語の重要性
PHPerに覚えて欲しい日本語の重要性PHPerに覚えて欲しい日本語の重要性
PHPerに覚えて欲しい日本語の重要性
 
Laravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージLaravelのパッケージのテストに便利なパッケージ
Laravelのパッケージのテストに便利なパッケージ
 
Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩Laravel / Lumen 次の一歩
Laravel / Lumen 次の一歩
 
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugjPhpStormを使おう --高槻からは快速急行が早くなります #jbugj
PhpStormを使おう --高槻からは快速急行が早くなります #jbugj
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014Laravel_オープンソースカンファレンスhokkaido_JP_2014
Laravel_オープンソースカンファレンスhokkaido_JP_2014
 
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
 
PHPの今とこれから2015
PHPの今とこれから2015PHPの今とこれから2015
PHPの今とこれから2015
 
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションPHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
 
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろうPHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろう
 
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
 
PHPとJavaScriptの噺
PHPとJavaScriptの噺PHPとJavaScriptの噺
PHPとJavaScriptの噺
 

Viewers also liked

安心してぐっすり眠るための AWS 運用術
安心してぐっすり眠るための AWS 運用術安心してぐっすり眠るための AWS 運用術
安心してぐっすり眠るための AWS 運用術manabusakai
 
私がCloudStackを使う4つの理由
私がCloudStackを使う4つの理由私がCloudStackを使う4つの理由
私がCloudStackを使う4つの理由Takuma Nakajima
 
スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由Serverworks Co.,Ltd.
 
Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由Soudai Sone
 
自動構築と自動テスト〜インフラのコード化とクラウドの優位性
自動構築と自動テスト〜インフラのコード化とクラウドの優位性自動構築と自動テスト〜インフラのコード化とクラウドの優位性
自動構築と自動テスト〜インフラのコード化とクラウドの優位性azumakuniyuki 🐈
 
kintone cafe東京vol3 「kintoneの開発が楽しい3つの理由」
kintone cafe東京vol3 「kintoneの開発が楽しい3つの理由」kintone cafe東京vol3 「kintoneの開発が楽しい3つの理由」
kintone cafe東京vol3 「kintoneの開発が楽しい3つの理由」JOYZO
 
おジャ魔女どれみが素晴らしい3つの理由
おジャ魔女どれみが素晴らしい3つの理由おジャ魔女どれみが素晴らしい3つの理由
おジャ魔女どれみが素晴らしい3つの理由w1mvy pine
 
カヤックを退職すべきではない3つの理由
カヤックを退職すべきではない3つの理由カヤックを退職すべきではない3つの理由
カヤックを退職すべきではない3つの理由Shuichi Tsutsumi
 
最短で AWS を乗りこなすライフハック術
最短で AWS を乗りこなすライフハック術最短で AWS を乗りこなすライフハック術
最短で AWS を乗りこなすライフハック術manabusakai
 
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまでShuichi Tsutsumi
 

Viewers also liked (11)

安心してぐっすり眠るための AWS 運用術
安心してぐっすり眠るための AWS 運用術安心してぐっすり眠るための AWS 運用術
安心してぐっすり眠るための AWS 運用術
 
私がCloudStackを使う4つの理由
私がCloudStackを使う4つの理由私がCloudStackを使う4つの理由
私がCloudStackを使う4つの理由
 
Vpcを使う3つの理由
Vpcを使う3つの理由Vpcを使う3つの理由
Vpcを使う3つの理由
 
スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由スタートアップがAWSを使うべき3つの理由
スタートアップがAWSを使うべき3つの理由
 
Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由Web エンジニアが postgre sql を選ぶ 3 つの理由
Web エンジニアが postgre sql を選ぶ 3 つの理由
 
自動構築と自動テスト〜インフラのコード化とクラウドの優位性
自動構築と自動テスト〜インフラのコード化とクラウドの優位性自動構築と自動テスト〜インフラのコード化とクラウドの優位性
自動構築と自動テスト〜インフラのコード化とクラウドの優位性
 
kintone cafe東京vol3 「kintoneの開発が楽しい3つの理由」
kintone cafe東京vol3 「kintoneの開発が楽しい3つの理由」kintone cafe東京vol3 「kintoneの開発が楽しい3つの理由」
kintone cafe東京vol3 「kintoneの開発が楽しい3つの理由」
 
おジャ魔女どれみが素晴らしい3つの理由
おジャ魔女どれみが素晴らしい3つの理由おジャ魔女どれみが素晴らしい3つの理由
おジャ魔女どれみが素晴らしい3つの理由
 
カヤックを退職すべきではない3つの理由
カヤックを退職すべきではない3つの理由カヤックを退職すべきではない3つの理由
カヤックを退職すべきではない3つの理由
 
最短で AWS を乗りこなすライフハック術
最短で AWS を乗りこなすライフハック術最短で AWS を乗りこなすライフハック術
最短で AWS を乗りこなすライフハック術
 
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
「スキルなし・実績なし」 32歳窓際エンジニアがシリコンバレーで働くようになるまで
 

Similar to フレームワークを使うべき 3 つの理由

PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxPHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxHideo Kashioka
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUpKenichi Mukai
 
Phpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerPhpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerHideo Kashioka
 
第104回 php勉強会@東京 Laravel
第104回 php勉強会@東京 Laravel第104回 php勉強会@東京 Laravel
第104回 php勉強会@東京 LaravelJunKeun Lee
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い sasezaki
 
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudyライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudyKenichi Mukai
 
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室Yusuke Ando
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016Rui Hirokawa
 
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料Junichi Ishida
 
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜Hideo Kashioka
 
PHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さPHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さShinichi Takahashi
 
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 Mika Kane
 
CakePHP PHP Framework
CakePHP PHP FrameworkCakePHP PHP Framework
CakePHP PHP Frameworkryota ichie
 
Web デザイナーが身に付けておきたい定番スキル ーPHP 初級編ー
Web デザイナーが身に付けておきたい定番スキル ーPHP 初級編ーWeb デザイナーが身に付けておきたい定番スキル ーPHP 初級編ー
Web デザイナーが身に付けておきたい定番スキル ーPHP 初級編ーKite Koga
 
Fuel php勉強会 1
Fuel php勉強会 1Fuel php勉強会 1
Fuel php勉強会 1Kazuya Igari
 
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9Hiroshi Toda
 
#phpmatsuri LT大会システムの中身
#phpmatsuri LT大会システムの中身#phpmatsuri LT大会システムの中身
#phpmatsuri LT大会システムの中身Hisateru Tanaka
 
PHPカンファレンス北海道 php技術者認定上級試験を受けてみた
PHPカンファレンス北海道 php技術者認定上級試験を受けてみたPHPカンファレンス北海道 php技術者認定上級試験を受けてみた
PHPカンファレンス北海道 php技術者認定上級試験を受けてみたFumito Mizuno
 
Php development efficiency improvement
Php development efficiency improvementPhp development efficiency improvement
Php development efficiency improvement伸幸 茂木
 

Similar to フレームワークを使うべき 3 つの理由 (20)

PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxPHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUp
 
Phpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerPhpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginer
 
第104回 php勉強会@東京 Laravel
第104回 php勉強会@東京 Laravel第104回 php勉強会@東京 Laravel
第104回 php勉強会@東京 Laravel
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
 
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudyライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
ライブラリ・ファースト 第91回 PHP勉強会@東京 #phpstudy
 
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
 
OSC福岡 20111203
OSC福岡 20111203OSC福岡 20111203
OSC福岡 20111203
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016
 
PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料PHPカンファレンス2014の懇親会飛び込みLT資料
PHPカンファレンス2014の懇親会飛び込みLT資料
 
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
 
PHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さPHPから離れて感じるPHPの良さ
PHPから離れて感じるPHPの良さ
 
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
 
CakePHP PHP Framework
CakePHP PHP FrameworkCakePHP PHP Framework
CakePHP PHP Framework
 
Web デザイナーが身に付けておきたい定番スキル ーPHP 初級編ー
Web デザイナーが身に付けておきたい定番スキル ーPHP 初級編ーWeb デザイナーが身に付けておきたい定番スキル ーPHP 初級編ー
Web デザイナーが身に付けておきたい定番スキル ーPHP 初級編ー
 
Fuel php勉強会 1
Fuel php勉強会 1Fuel php勉強会 1
Fuel php勉強会 1
 
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
 
#phpmatsuri LT大会システムの中身
#phpmatsuri LT大会システムの中身#phpmatsuri LT大会システムの中身
#phpmatsuri LT大会システムの中身
 
PHPカンファレンス北海道 php技術者認定上級試験を受けてみた
PHPカンファレンス北海道 php技術者認定上級試験を受けてみたPHPカンファレンス北海道 php技術者認定上級試験を受けてみた
PHPカンファレンス北海道 php技術者認定上級試験を受けてみた
 
Php development efficiency improvement
Php development efficiency improvementPhp development efficiency improvement
Php development efficiency improvement
 

More from Kenichi Mukai

第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5Kenichi Mukai
 
Laravel Meetup Tokyo Vol.3 告知 LT
Laravel Meetup Tokyo Vol.3 告知 LTLaravel Meetup Tokyo Vol.3 告知 LT
Laravel Meetup Tokyo Vol.3 告知 LTKenichi Mukai
 
PHPカンファレンス 2012 フレームワークアップデート FuelPHP
PHPカンファレンス 2012 フレームワークアップデート FuelPHPPHPカンファレンス 2012 フレームワークアップデート FuelPHP
PHPカンファレンス 2012 フレームワークアップデート FuelPHPKenichi Mukai
 
Osc2012 fall fuel_php
Osc2012 fall fuel_phpOsc2012 fall fuel_php
Osc2012 fall fuel_phpKenichi Mukai
 

More from Kenichi Mukai (7)

第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5
 
Laravel Meetup Tokyo Vol.3 告知 LT
Laravel Meetup Tokyo Vol.3 告知 LTLaravel Meetup Tokyo Vol.3 告知 LT
Laravel Meetup Tokyo Vol.3 告知 LT
 
Creators meetup5
Creators meetup5Creators meetup5
Creators meetup5
 
php-study69
php-study69php-study69
php-study69
 
PHPカンファレンス 2012 フレームワークアップデート FuelPHP
PHPカンファレンス 2012 フレームワークアップデート FuelPHPPHPカンファレンス 2012 フレームワークアップデート FuelPHP
PHPカンファレンス 2012 フレームワークアップデート FuelPHP
 
Osc2012 fall fuel_php
Osc2012 fall fuel_phpOsc2012 fall fuel_php
Osc2012 fall fuel_php
 
Ospn fuel php
Ospn fuel phpOspn fuel php
Ospn fuel php
 

Recently uploaded

2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦Sadao Tokuyama
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 

Recently uploaded (12)

2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 

フレームワークを使うべき 3 つの理由