SlideShare uma empresa Scribd logo
1 de 34
ここがすごい!なぞとPHP5.3  佐藤琢哉 LOCAL PHP部
はじめに
なぞはすごくないです!!!
自己紹介 佐藤琢哉 aka nazo 旭川->東京->札幌 LOCAL PHP部 Hatena : nazone twitter : nazo
アジェンダ PHP5.3おさらい lithiumについて
PHP5.3おさらい
何が変わった5.3? 名前空間 staticメソッドに関する追加機能 goto 無名関数 Phar その他細かい変更
名前空間 ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥ 名前空間を解決するための仕組み namespaceで囲む useで宣言すると省略できる
staticメソッドに関する追加機能 遅延静的束縛(late static binding) 呼び出し方法によって実行するメソッドを実行時に切り替える 動的静的呼び出し(Dynamic Static Call) $a::foo(); なぜ今までできなかったのかが謎 __callStatic __callのstatic版 O/Rマッパーとかで効果が出てくると思われる?
goto 使うな!!!
無名関数(lambda) JavaScriptやってる人ならおなじみ 無名関数≠クロージャ(よく間違えられる) lambdaと呼ぶのはLisp方面が元ネタらしい 従来create_functionで一応作れたが、非常に面倒だった クロージャ:無名(に限らないが)関数内の変数を解決するときに、その関数が定義されたスコープでの変数を参照する仕組み
Phar PHPのソースをtarとかzipで固めて、それをそのままPHPからincludeできるようにする仕組み Pythonのeggみたいなやつ(?)
細かい変更 公式のドキュメントを読めば何が非推奨かとか書いてあるから、ある程度はそこをチェックしながら 微妙に互換性のない修正もあるので、なんか変だと思ったらチェックしてみよう PHP5な書き方をしていればそこまで変にはならない
インストール 基本的にソースから入れるのがいい WindowsならXAMPPを入れれば最初から5.3になる でも5.3メインで開発することはまだ少ない気がする debian、ubuntu系ならdotdebにパッケージがある(が、入れると当然5.2は消える)
インストール 5.3.2はビルド時にSEGVを出すバグがあるっぽいので、5.3.1を入れたほうがいいかも(詳細不明) http://bugs.php.net/bug.php?id=51216
lithiumについて
lithiumってなに? PHP5.3専用フレームワーク CakePHPを作っていたGarrett WoodworthとかNate Abeleとかって人がCakePHPプロジェクトから離脱して作り始めた CakePHPっぽさが随所に残っている まだ正式版ではない http://rad-dev.org/
主な特徴 PHP5.3専用 MongoDBなどのDBにも対応(むしろ推奨している印象) CakePHPっぽく書けるが先進的な機能も豊富 フィルタ機能で好きなところを改造できる
ダウンロードインストール
ダウンロード http://rad-dev.org/lithium/wiki/drafts/blog-tutorialを参考に ここで見るとMongoDBを使っているが、今回はMySQLで行う http://rad-dev.org/lithium/versionsからダウンロードして解凍
初期設定 フォルダ構成はCakePHPそっくり 若干違う箇所もあるが URLがルートでない場合はCakePHP同様.htaccessでRewriteBaseを設定 app/resourcesをwritableにする config/bootstrap.phpのconnections.phpをrequireしてるところのコメントアウトを解除 config/connections.phpを編集 DB設定
テーブル create table posts (   id integer unsigned not null auto_increment,   title varchar(255),   body text,   primary key(id) );
MVC作成
app/models/Post.php <?php namespace appodels; class Post extends ithiumataodel { }
app/controllers/PostsController.php <?php namespace appontrollers; class PostsController extends ithiumctionontroller { }
app/views/posts/index.html.php (普通のHTML)
MVC作成 controllerからviewに値を渡すには、controllerでkey=>valueの形式でreturnする compactを使うのがおすすめ
MVC作成 viewの拡張子は.html.php viewではshort_open_tagの設定に限らず、<?=$foo?>書式が使える なんと自動でHTMLエスケープ機能付き ちなみにエスケープされたくない場合は<?php echo $foo?> なぜかHelperは自動エスケープされない不思議 nl2brは普通にやるしかない(と思う)
CRUDを作ってみる
Model Model周りはそこまで調べてないので省略 namespaceで使うモデルを定義 別にしなくても使えるけど定義したほうが楽
Helper Helperは$thisから参照すること $this->html->link(...)
まとめ
まとめ lithiumは開発がもりもり進んでいるので、そのうち実用的になる その日に向けて勉強しておくのはいいかも 今はまだ実用は厳しいかも(ドキュメントが少なすぎ) lithiumが出てきたらPHP5.3が本番!という感じがする 他に使う理由があまり無い 追加機能は便利ではあるが…
おわり

Mais conteúdo relacionado

Mais procurados

Ruby でパケットパーサを作ろう
Ruby でパケットパーサを作ろうRuby でパケットパーサを作ろう
Ruby でパケットパーサを作ろうYasuhito Takamiya
 
Better C#の脱却を目指して
Better C#の脱却を目指してBetter C#の脱却を目指して
Better C#の脱却を目指してbleis tift
 
F#によるFunctional Programming入門
F#によるFunctional Programming入門F#によるFunctional Programming入門
F#によるFunctional Programming入門bleis tift
 
.NET系開発者から見たJava
.NET系開発者から見たJava.NET系開発者から見たJava
.NET系開発者から見たJavableis tift
 
今すぐ使えるPHP開発のあれこれ
今すぐ使えるPHP開発のあれこれ今すぐ使えるPHP開発のあれこれ
今すぐ使えるPHP開発のあれこれYuya Kikukawa
 
From Java To Clojure
From Java To ClojureFrom Java To Clojure
From Java To ClojureKent Ohashi
 
Phpstormちょっといい話
Phpstormちょっといい話Phpstormちょっといい話
Phpstormちょっといい話Hisateru Tanaka
 
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm晃 遠山
 
Phpmatsuri2011 LT j_nakada
Phpmatsuri2011 LT j_nakadaPhpmatsuri2011 LT j_nakada
Phpmatsuri2011 LT j_nakadaJunpei Nakada
 
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013晃 遠山
 
それPhpStormで出来るよ #phpstudy
それPhpStormで出来るよ #phpstudyそれPhpStormで出来るよ #phpstudy
それPhpStormで出来るよ #phpstudy晃 遠山
 
最近僕が使うようになったPerl 5.10以降の新しいやつ
最近僕が使うようになったPerl 5.10以降の新しいやつ最近僕が使うようになったPerl 5.10以降の新しいやつ
最近僕が使うようになったPerl 5.10以降の新しいやつazumakuniyuki 🐈
 
ドキッ!記号だらけの無名関数
ドキッ!記号だらけの無名関数ドキッ!記号だらけの無名関数
ドキッ!記号だらけの無名関数Shinya Hayakawa
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~CHY72
 
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話Rui Hirokawa
 

Mais procurados (20)

20190809
2019080920190809
20190809
 
Ruby でパケットパーサを作ろう
Ruby でパケットパーサを作ろうRuby でパケットパーサを作ろう
Ruby でパケットパーサを作ろう
 
Better C#の脱却を目指して
Better C#の脱却を目指してBetter C#の脱却を目指して
Better C#の脱却を目指して
 
F#によるFunctional Programming入門
F#によるFunctional Programming入門F#によるFunctional Programming入門
F#によるFunctional Programming入門
 
.NET系開発者から見たJava
.NET系開発者から見たJava.NET系開発者から見たJava
.NET系開発者から見たJava
 
今すぐ使えるPHP開発のあれこれ
今すぐ使えるPHP開発のあれこれ今すぐ使えるPHP開発のあれこれ
今すぐ使えるPHP開発のあれこれ
 
PHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyieldPHPにおけるI/O多重化とyield
PHPにおけるI/O多重化とyield
 
From Java To Clojure
From Java To ClojureFrom Java To Clojure
From Java To Clojure
 
From JS To CLJS
From JS To CLJSFrom JS To CLJS
From JS To CLJS
 
Phpstormちょっといい話
Phpstormちょっといい話Phpstormちょっといい話
Phpstormちょっといい話
 
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm
 
Phpmatsuri2011 LT j_nakada
Phpmatsuri2011 LT j_nakadaPhpmatsuri2011 LT j_nakada
Phpmatsuri2011 LT j_nakada
 
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
PhpStormで始める快適なWebアプリケーション開発 #phpcon2013
 
それPhpStormで出来るよ #phpstudy
それPhpStormで出来るよ #phpstudyそれPhpStormで出来るよ #phpstudy
それPhpStormで出来るよ #phpstudy
 
Thrift
ThriftThrift
Thrift
 
最近僕が使うようになったPerl 5.10以降の新しいやつ
最近僕が使うようになったPerl 5.10以降の新しいやつ最近僕が使うようになったPerl 5.10以降の新しいやつ
最近僕が使うようになったPerl 5.10以降の新しいやつ
 
ドキッ!記号だらけの無名関数
ドキッ!記号だらけの無名関数ドキッ!記号だらけの無名関数
ドキッ!記号だらけの無名関数
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
 
Lithium Labo #1
Lithium Labo #1Lithium Labo #1
Lithium Labo #1
 
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
 

Destaque

フレームワーク使おうぜ!
フレームワーク使おうぜ!フレームワーク使おうぜ!
フレームワーク使おうぜ!Takuya Sato
 
本番環境で使いたいPHP
本番環境で使いたいPHP本番環境で使いたいPHP
本番環境で使いたいPHPTakuya Sato
 
徹底攻略!PHP5.4
徹底攻略!PHP5.4徹底攻略!PHP5.4
徹底攻略!PHP5.4Takuya Sato
 
自己実現理論と煩悩
自己実現理論と煩悩自己実現理論と煩悩
自己実現理論と煩悩Sunao Kumura
 
Hanon Summary ハノンの1~20をA4 1枚にまとめました
Hanon Summary ハノンの1~20をA4 1枚にまとめましたHanon Summary ハノンの1~20をA4 1枚にまとめました
Hanon Summary ハノンの1~20をA4 1枚にまとめましたTaku Aoyama
 
知っているつもり?正しい「自己実現理論」~心理学・精神医学から~
知っているつもり?正しい「自己実現理論」~心理学・精神医学から~知っているつもり?正しい「自己実現理論」~心理学・精神医学から~
知っているつもり?正しい「自己実現理論」~心理学・精神医学から~nemonemo01
 
3分で読める「論語」超要約
3分で読める「論語」超要約3分で読める「論語」超要約
3分で読める「論語」超要約Taku Aoyama
 
3分で読める「禅の思想」
3分で読める「禅の思想」3分で読める「禅の思想」
3分で読める「禅の思想」Taku Aoyama
 
3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)
3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)
3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)Taku Aoyama
 
3分で読める「道は開ける」超要約(デール・カーネギー)
3分で読める「道は開ける」超要約(デール・カーネギー)3分で読める「道は開ける」超要約(デール・カーネギー)
3分で読める「道は開ける」超要約(デール・カーネギー)Taku Aoyama
 
価値をみつけ、つくる人になるWs 慶應大学2013
価値をみつけ、つくる人になるWs 慶應大学2013価値をみつけ、つくる人になるWs 慶應大学2013
価値をみつけ、つくる人になるWs 慶應大学2013Okui Hatsune
 
アドラー心理学が教える幸せに生きるための3つのヒントとは?まとめ資料
アドラー心理学が教える幸せに生きるための3つのヒントとは?まとめ資料アドラー心理学が教える幸せに生きるための3つのヒントとは?まとめ資料
アドラー心理学が教える幸せに生きるための3つのヒントとは?まとめ資料szzk
 
図解でざっくり学ぶアドラー心理学
図解でざっくり学ぶアドラー心理学図解でざっくり学ぶアドラー心理学
図解でざっくり学ぶアドラー心理学Katsuhito Okada
 
5W1H (6W2H) の意味をA4 1枚にまとめたシート
5W1H (6W2H) の意味をA4 1枚にまとめたシート5W1H (6W2H) の意味をA4 1枚にまとめたシート
5W1H (6W2H) の意味をA4 1枚にまとめたシートTaku Aoyama
 
5S(整理・整頓・清掃・清潔・躾)をA4一枚で理解するシート
5S(整理・整頓・清掃・清潔・躾)をA4一枚で理解するシート5S(整理・整頓・清掃・清潔・躾)をA4一枚で理解するシート
5S(整理・整頓・清掃・清潔・躾)をA4一枚で理解するシートTaku Aoyama
 
3分で読める デール・カーネギー「人を動かす」超要約
3分で読める デール・カーネギー「人を動かす」超要約3分で読める デール・カーネギー「人を動かす」超要約
3分で読める デール・カーネギー「人を動かす」超要約Taku Aoyama
 

Destaque (18)

フレームワーク使おうぜ!
フレームワーク使おうぜ!フレームワーク使おうぜ!
フレームワーク使おうぜ!
 
本番環境で使いたいPHP
本番環境で使いたいPHP本番環境で使いたいPHP
本番環境で使いたいPHP
 
徹底攻略!PHP5.4
徹底攻略!PHP5.4徹底攻略!PHP5.4
徹底攻略!PHP5.4
 
Silex入門
Silex入門Silex入門
Silex入門
 
自己実現理論と煩悩
自己実現理論と煩悩自己実現理論と煩悩
自己実現理論と煩悩
 
Hanon Summary ハノンの1~20をA4 1枚にまとめました
Hanon Summary ハノンの1~20をA4 1枚にまとめましたHanon Summary ハノンの1~20をA4 1枚にまとめました
Hanon Summary ハノンの1~20をA4 1枚にまとめました
 
知っているつもり?正しい「自己実現理論」~心理学・精神医学から~
知っているつもり?正しい「自己実現理論」~心理学・精神医学から~知っているつもり?正しい「自己実現理論」~心理学・精神医学から~
知っているつもり?正しい「自己実現理論」~心理学・精神医学から~
 
3分で読める「論語」超要約
3分で読める「論語」超要約3分で読める「論語」超要約
3分で読める「論語」超要約
 
3分で読める「禅の思想」
3分で読める「禅の思想」3分で読める「禅の思想」
3分で読める「禅の思想」
 
Vue.js入門
Vue.js入門Vue.js入門
Vue.js入門
 
3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)
3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)
3分で読める「7つの習慣」超要約(スティーブン・R・コヴィー)
 
3分で読める「道は開ける」超要約(デール・カーネギー)
3分で読める「道は開ける」超要約(デール・カーネギー)3分で読める「道は開ける」超要約(デール・カーネギー)
3分で読める「道は開ける」超要約(デール・カーネギー)
 
価値をみつけ、つくる人になるWs 慶應大学2013
価値をみつけ、つくる人になるWs 慶應大学2013価値をみつけ、つくる人になるWs 慶應大学2013
価値をみつけ、つくる人になるWs 慶應大学2013
 
アドラー心理学が教える幸せに生きるための3つのヒントとは?まとめ資料
アドラー心理学が教える幸せに生きるための3つのヒントとは?まとめ資料アドラー心理学が教える幸せに生きるための3つのヒントとは?まとめ資料
アドラー心理学が教える幸せに生きるための3つのヒントとは?まとめ資料
 
図解でざっくり学ぶアドラー心理学
図解でざっくり学ぶアドラー心理学図解でざっくり学ぶアドラー心理学
図解でざっくり学ぶアドラー心理学
 
5W1H (6W2H) の意味をA4 1枚にまとめたシート
5W1H (6W2H) の意味をA4 1枚にまとめたシート5W1H (6W2H) の意味をA4 1枚にまとめたシート
5W1H (6W2H) の意味をA4 1枚にまとめたシート
 
5S(整理・整頓・清掃・清潔・躾)をA4一枚で理解するシート
5S(整理・整頓・清掃・清潔・躾)をA4一枚で理解するシート5S(整理・整頓・清掃・清潔・躾)をA4一枚で理解するシート
5S(整理・整頓・清掃・清潔・躾)をA4一枚で理解するシート
 
3分で読める デール・カーネギー「人を動かす」超要約
3分で読める デール・カーネギー「人を動かす」超要約3分で読める デール・カーネギー「人を動かす」超要約
3分で読める デール・カーネギー「人を動かす」超要約
 

Mais de Takuya Sato

レガシープロダクトを改善していくための戦い方
レガシープロダクトを改善していくための戦い方レガシープロダクトを改善していくための戦い方
レガシープロダクトを改善していくための戦い方Takuya Sato
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外Takuya Sato
 
Redmineで始めるチケット駆動開発
Redmineで始めるチケット駆動開発Redmineで始めるチケット駆動開発
Redmineで始めるチケット駆動開発Takuya Sato
 
本当は怖いPHP
本当は怖いPHP本当は怖いPHP
本当は怖いPHPTakuya Sato
 
PHPとMongoDBで学ぶ次世代データストア
PHPとMongoDBで学ぶ次世代データストアPHPとMongoDBで学ぶ次世代データストア
PHPとMongoDBで学ぶ次世代データストアTakuya Sato
 
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるPHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるTakuya Sato
 

Mais de Takuya Sato (6)

レガシープロダクトを改善していくための戦い方
レガシープロダクトを改善していくための戦い方レガシープロダクトを改善していくための戦い方
レガシープロダクトを改善していくための戦い方
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
 
Redmineで始めるチケット駆動開発
Redmineで始めるチケット駆動開発Redmineで始めるチケット駆動開発
Redmineで始めるチケット駆動開発
 
本当は怖いPHP
本当は怖いPHP本当は怖いPHP
本当は怖いPHP
 
PHPとMongoDBで学ぶ次世代データストア
PHPとMongoDBで学ぶ次世代データストアPHPとMongoDBで学ぶ次世代データストア
PHPとMongoDBで学ぶ次世代データストア
 
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるPHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
 

ここがすごい! なぞとPHP5.3