PHP カンファレンス 2015 福岡で、Thinreports の PHP 実装を作ったよという話をしたときのスライド
ؔ٦فٝا٦أז䌘牰خ٦ٕ⡲ת׃կPHP Conference FUKUOKA 2015
View Slide
ߴ ࠀRuby, PHPThinreports ͷ։ൃऀ
SIɾσʔληϯλʔɾӡ༻ɾσʔλΤϯτϦʔ
αϚϦʔThinreports ͍ͬͯ͏Φʔϓϯιʔεͷாථπʔϧ͕͢Ͱʹ͋ͬͯɺͦͷPHP൛Λ࡞ͬͨΑɺͱ͍͏ɻ
Thinreports ͱ• Ruby Ͱ͑ΔΦʔϓϯιʔεͷாථπʔϧ• ϨΠΞτσβΠφʢEditorʣͱ PDFग़ྗϥΠϒϥϦʢGeneratorʣ• Ҏ߱ɺͪ͜ΒΛʮຊՈʯͱݺͼ·͢
EditorLayout File (.tlf)Script (Generator)
PHP ൛ Thinreports• Ҏલ͔Βཁଟ• Generator ͷ PHP ࣮• Editor ڞ௨
EditorLayout File (.tlf)Script (Generator)ࠓճ࡞ͬͨͷίί
thinreports-php• Status: dev-master• PHP >= 5.6PHP7, HHVM ಈ࡞ະ֬ೝ• The MIT LicenseճΓͰͬͯΔ TCPDF LGPLv3 Ͱ͋Δ͜ͱʹҙ• Pure PHP
Hello thinreports-php
Setup. Install thinreports-php$ vi composer.json:“require”: {“thinreports-php/thinreports-php”: “dev-master”}:$ composer install
Setup. Install Editor
1. Create a layout fileID Λ “world”
2. Write codeuse Thinreports;$report = new Thinreports\Report('hello_world.tlf');$page = $report->addPage();$page->item('world')->setValue('World');// ҎԼͷΑ͏ʹॻ͚Δ:// $page(‘world’)->setValue(’World’);// $page->setItemValue(‘world’, ’World’);// $page->setItemValues([‘world’ => ’World’]);$report->generate('hello_world.pdf');
3. Run$ php hello_world.php ↩︎
4. Finish
ͦͷଞͰ͖Δ͜ͱ• ͪΖΜຊޠ OK• ը૾ͷ੩త/ಈతషΓ͚• ਤܗɾςΩετͷಈతͳελΠϧมߋ• ϖʔδ൪߸ͷࣗಈදࣔ• ؆қॻࣜઃఆʢ࣌ࠁɺɺࣈ٧ΊʣͳͲͳͲɻৄࡉຊՈެࣜαΠτΛͲ͏ͧɻ
ͱ͍͑ɺ·ͩ։ൃόʔδϣϯ• ϦετπʔϧະରԠ• ෳ߹ϨΠΞτະରԠൺֱత؆୯ʹͰ͖Δɻ͜ͷޙʹͰରԠ͢Δ• ϑΥϯτͷϑΥʔϧόοΫະରԠ͜Ε͕ຯʹҰ൪ͷ՝• ύϑΥʔϚϯεɾϝϞϦʔফඅͷվળIPAϑΥϯτΛ TCPDF ༻ʹม͢Δίετ͕ߴ͍ɻࣄલʹม͢ΔΈ༻ҙ• ςετίʔυͷΧόϨοδ 70% ͙Β͍ؒʹ߹Θͣ
TCPDF • ςετίʔυ͕ͳ͍࠷ۙؾ͍ͮͨ…• ࠨԼʹখ͘͞ʮPowered by TCPDFʯۃখαΠζˍനʹനจࣈͳͷͰݟͨͳ͍͕…• PDF ϥΠϒϥϦ։ൃͱ͍͏ҋʹखΛग़͔͢ΜͰΔͱ͜Ζ
ࠓޙ
։ൃํ• ຊՈ Thinreports ͱผͷίϛϡχςΟͱͯ͠։ൃͪΖΜࢲࢀՃ͠·͢• ϨΠΞτϑΝΠϧͷ༷ԼهͰެ։͞Ε͍ͯΔͷͰ͜Εʹैͬͯै͢Δײ͡https://github.com/thinreports/thinreports/wiki/Spec:-Layout-File• ͱ͍͑ɺPHP൛ಠࣗͷػೳશવ͋Γ͢Ͱʹ Ruby ࣮ͱएׯ API ҧ͍·͢͠
ͥͻҰॹʹ• ݱࡏͷ։ൃϝϯόʔ: 1ਓʢࢲʣ• ͔͠ PHP ΛͪΌΜͱΔͷ 5 ͿΓPHPΧϯϑΝϨϯεͳͷʹ͍͢·ͤΜ• ΠέͯΔπʔϧʹͳΔ͔Ͳ͏͔ɺΈͳ͞Μʹ͔͔͍ͬͯ·͢!
ૣɺ։ൃʹࢀՃ͢Δ• ·ͩԿߟ͑ͯͳ͍Ͱ͢• ͱΓ͑͋͑ͣɺGitter ͷ “dev” room ʹ JOINREADME.md ͷԼͷํʹ͋Δɹɹɹɹɹɹɹ ɹΛΫϦοΫ͢Δ͠• ։ൃυΩϡϝϯτͳΜ͔ Wiki ʹ·ͱΊ·͢গʑ͓ͪԼ͍͞• Α͘Θ͔Βͳ͍Αɺͱ͍͏ํޙͰฉ͍͍ͯͩ͘͞
͋Γ͕ͱ͏͍͟͝·ͨ͠ɻͪͳΈʹɺ• ຊՈ Thinreports v1.0 ϦϦʔε༧ఆ• ΧελϜϑΥϯτݱࡏ͑ΔϑΥϯτ 4 ͭͷΈɻಠࣗϑΥϯτ͕ར༻ՄೳʹͳΔ͔• Ϧετπʔϧͷվળ୯ථϨΠΞτͱ࿈ථϨΠΞτ͕બՄೳʹͳΔ͔• όʔίʔυػೳͷωΠςΟϒαϙʔτͳͲ