ここがすごい! なぞとPHP5.3
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 2,085 views

LOCAL PHP勉強会09

LOCAL PHP勉強会09

Statistics

Views

Total Views
2,085
Views on SlideShare
2,084
Embed Views
1

Actions

Likes
1
Downloads
5
Comments
0

1 Embed 1

http://localhost:3000 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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