Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CakePHPアプリケーションの作り方 〜これまでと、これから

CakePHPアプリケーションの作り方 〜これまでと、これから

PHP Framework 最新バージョン使ってみた LT 発表資料
http://connpass.com/event/16016/

Kenichiro Kishida

June 17, 2015
Tweet

More Decks by Kenichiro Kishida

Other Decks in Technology

Transcript

  1. $BLF1)1ΞϓϦέ
    ʔγϣϯͷ࡞Γํ
    ͜Ε·Ͱͱɺ͜Ε͔Β
    1)1'SBNFXPSL࠷৽όʔδϣϯ࢖ͬͯΈͨ-5CZ!TJ[VIJLP

    View Slide

  2. ,FOJDIJSP,JTIJEB
    5PLZP +"1"/
    TJ[VIJLP!HNBJMDPN !TJ[VIJLP
    IUUQTHJUIVCDPNTJ[VIJLP
    IUUQCMPHPQFOUPLZPKQ +1POMZ

    View Slide

  3. .BZ

    View Slide

  4. View Slide

  5. 2
    0DU

    View Slide

  6. ͜Ε·Ͱ
    • XAMPP΍MAMPPɺvagrant
    • μ΢ϯϩʔυͯ͠Πϯετʔϧ
    ComposerΛ࢖͏ʹ͸ΧελϚΠζ͕ඞཁ
    • BakeͰ਽ܗΛੜ੒
    • Console/cake͔ΒCLIΛ࣮ߦ
    • ComposerͰґଘؔ܎Λղܾ
    • ϓϥάΠϯҎ֎ͷύοέʔδ͕࢖͍೉͍

    View Slide

  7. $BLF1)1
    CakePHP2
    App
    Cake
    CLI
    CakePHP2
    Core
    Vendor
    Package
    Web
    Server
    CakePHP2
    Plugin

    View Slide

  8. .BS

    View Slide

  9. $BLF1)1
    CakePHP3
    App
    PHP
    CLI
    CakePHP3
    Core
    Vendor
    Package
    Web
    Server
    CakePHP3
    Plugin

    View Slide

  10. ͜Ε͔Β
    • CakeboxͰָʑ؀ڥߏங
    • migrationͱDebugKit͕ॳظಋೖ
    • BakeͰ਽ܗΛੜ੒
    • Composerͷར༻͕ඞਢ
    • PSR-4ରԠͰͲ͔͜ΒͰ΋CakePHPΛ
    ݺͼग़͠Մೳʹ

    View Slide

  11. ؀ڥߏங
    https://github.com/alt3/cakebox

    View Slide

  12. # ؀ڥߏங
    git clone https://github.com/alt3/cakebox.git
    cd cakebox
    cp Cakebox.yaml.default Cakebox.yaml
    vagrant up
    # ৽نΞϓϦέʔγϣϯੜ੒
    vagrant ssh
    cakebox application add ΞϓϦ໊
    # طଘΞϓϦέʔγϣϯΠϯετʔϧ
    cakebox application add ΞϓϦ໊ \
    --source https://github.com/hoge.git \
    --webroot /var/www/application/hoge
    http://blog.open.tokyo.jp/2015/04/19/cakebox-is-awesome.html

    View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. # ςετ࣮ߦ
    phpunit
    # Behat࣮ߦ
    vendor/bin/behat

    View Slide

  18. {
    "name": "cakephp/app",
    "type": "project",
    "license": "MIT",
    "require": {
    "php": ">=5.4.16",
    "cakephp/cakephp": "3.0.*-dev",
    "mobiledetect/mobiledetectlib": "2.*",
    "cakephp/migrations": "dev-master",
    "cakephp/plugin-installer": "*"
    },
    "require-dev": {
    "d11wtq/boris": "1.0.*",
    "cakephp/debug_kit": "3.0.*-dev",
    "cakephp/bake": "dev-master"
    },
    "suggest": {
    "phpunit/phpunit": "Allows automated tests to be run without system-wide install.",
    "cakephp/cakephp-codesniffer": "Allows to check the code against the coding standards used in CakePHP."
    },
    "autoload": {
    "psr-4": {
    "App\\": "src"
    }
    },
    "autoload-dev": {
    "psr-4": {
    "App\\Test\\": "tests",
    "Cake\\Test\\": "./vendor/cakephp/cakephp/tests"
    }
    },
    "scripts": {
    "post-install-cmd": "App\\Console\\Installer::postInstall",
    "post-autoload-dump": "Cake\\Composer\\Installer\\PluginInstaller::postAutoloadDump"
    },
    "minimum-stability": "dev",
    "prefer-stable": true
    }

    View Slide

  19. "require": {
    "php": ">=5.4.16",
    "cakephp/cakephp": "~3.0",
    "mobiledetect/mobiledetectlib": "2.*",
    "cakephp/migrations": "~1.0",
    "cakephp/plugin-installer": "*"
    },
    "require-dev": {
    "psy/psysh": "@stable",
    "cakephp/debug_kit": "~3.0",
    "cakephp/bake": "~1.0"
    },

    View Slide

  20. "autoload": {
    "psr-4": {
    "App\\": "src"
    }
    },
    "autoload-dev": {
    "psr-4": {
    "App\\Test\\": "tests",
    "Cake\\Test\\": "./vendor/cakephp/
    cakephp/tests"
    }
    },

    View Slide

  21. 03.

    View Slide

  22. XxTable
    CakePHP3
    Core
    XxEntity
    App
    Iterator
    array
    $BLFͱͷޓ׵ੑ

    View Slide

  23. ΧελϜϑΝΠϯμʔ
    • find(“groupByUserId”)
    • findGroupByUserId() ͱ͍͏ϝιου
    ΛXxxTableΫϥεʹ࣮૷͢Δ
    • find(“age”, [30, 40])-
    >find(“groupByUserId”) ͷΑ͏ʹϝι
    ουνΣΠϯՄೳ

    View Slide

  24. ·ͩ͸ෆ҆ͩ

    View Slide

  25. $BLF1)1&OUJUZ
    1MVHJO
    https://github.com/josegonzalez/cakephp-entity

    View Slide

  26. $BLF1)1&OUJUZ
    • CakePHP2ͰCakePHP3෩ʹTableͱ
    EntityΛ࢖͑Δ
    • কདྷతͳCakePHP3΁ͷҠߦΛ༰қʹ
    • ΧελϜϑΝΠϯμʔͳͲͷػೳ͸ͳ
    ͍

    View Slide

  27. Mark Story - CakePHP 3.0.0 and beyond (Conference)
    Slides: http://www.slideshare.net/markstory/cakephp-30-and-beyond

    View Slide

  28. WJTJUNZCMPHHJUIVC
    https://github.com/sizuhiko
    5IBOLZPV
    http://blog.open.tokyo.jp

    View Slide