SlideShare una empresa de Scribd logo
1 de 14
Enjoy, Twig
PHP BLT #2
2016.01.13
林 正紀 @m_norii
About me
• 林 正紀 (HAYASHI Masanori)
• 1974年09月12日生 (41歳)
• 埼玉生まれ埼玉育ち埼玉ふじみ野在住
• 埼玉大学/大学院・数学専攻
• 埼玉土着エンジニア
• EMTG
• @m_norii
• http://norii.hatenablog.com/
• https://www.facebook.com/m.norii
http://emtg.co.jp/archives/2975
http://emtg.co.jp/archives/2975
エンジニア募集中!!
http://emtg.co.jp/recruit
Enjoy, Twig
• Includeのignore missing
• 条件付きForループ
• slice
• Verbatim
• template_from_string
Includeのignore missing
• 指定テンプレートが無い場合、何もしない
(この指定が無い場合はエラーになる)
//foo.html.twig が無い場合はエラー
{% include 'foo.html.twig' %}
//foo.html.twig が無い場合は何も出力しない
{% include 'foo.html.twig' ignore missing %}
//複数ファイル指定
//foo.html.twig が無い場合 bar.html.twigを表示、それもなければエラー
{% include ['foo.html.twig', 'bar.html.twig'] %}
//foo.html.twig が無い場合 bar.html.twigを表示
//それもなければ何も出力しない
{% include ['foo.html.twig', 'bar.html.twig'] ignore missing %}
条件付きForループ
• リスト中の特定条件のものだけ処理をする場合
に便利
• For とif をネストして書くよりもすっきり書
ける
<ul>
{% for user in users if user.active %}
<li>{{user.username}}</li>
{% endfor %}
</ul>
Slice
• 配列に対してはarray_slice()
文字列に対しては mb_substr()/substr()と
して作用する
{% for i in [1, 2, 3, 4, 5]|slice(1, 2) %}
※i = 2、3に対してのみ処理が行われる
{% endfor %}
{{ 'Hello'|slice(1, 2) }}
{# 出力は「el」 #}
Verbatim
• Twigで評価される {{ }}、{% %}などを
評価せずそのまま表示する
• 「Twigでこう書いてね」を伝えるのに便利
{% verbatim %}
以下のように記述してください。
<pre>
{% if date() >= date('2016-01-08 00:00:00') %}
【表示したい内容】
{% endif %}
</pre>
{% endverbatim %}
template_from_string
• 引数を再度Twig構文として評価する
• いわゆるeval的なもの
動機
CMSの中で
Twigを記述したい
※画像はあくまでイメージです。内容はWordpressとは関係ありません
template_from_string
template_from_string
• デフォルトでは有効ではないので、設定が必要
(前スライド後半参照)
• DBにTwigテンプレ文字列を登録して渡す、み
たいなことができる
• 用法用量を守って正しく使いましょう
• Template_from_string()に渡す文字列に
template_from_string()が入っていたら・・・
どうなるのか?(試してない)
• ユーザ入力に対して使っちゃダメ、絶対!
Enjoy, Twig!!

Más contenido relacionado

Destacado

Security Advisories Checker on Travis/Circle CI
Security Advisories Checker on Travis/Circle CISecurity Advisories Checker on Travis/Circle CI
Security Advisories Checker on Travis/Circle CIRyo Shibayama
 
Re: WebServer BenchMarking
Re: WebServer BenchMarkingRe: WebServer BenchMarking
Re: WebServer BenchMarkingRyo Tomidokoro
 
apachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin ServerっぽいやつをつくったapachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin ServerっぽいやつをつくったJunichi Ishida
 
What's new in Symfony3
What's new in Symfony3What's new in Symfony3
What's new in Symfony3Yuki MAEJIMA
 
install PHP7 on CentOS7 by Ansible
install PHP7 on CentOS7 by Ansibleinstall PHP7 on CentOS7 by Ansible
install PHP7 on CentOS7 by AnsibleDQNEO
 
Composer並列化プラグイン #phpblt
Composer並列化プラグイン #phpblt Composer並列化プラグイン #phpblt
Composer並列化プラグイン #phpblt Hiraku Nakano
 
新標準PSRに学ぶきれいなPHP
新標準PSRに学ぶきれいなPHP新標準PSRに学ぶきれいなPHP
新標準PSRに学ぶきれいなPHPYusuke Ando
 
MBSハッカソン協賛品_ハンズラボ20170211
MBSハッカソン協賛品_ハンズラボ20170211MBSハッカソン協賛品_ハンズラボ20170211
MBSハッカソン協賛品_ハンズラボ20170211由佳 青木
 
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろうPHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろうTaiji INOUE
 
とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)
とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)
とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)Kazuo Murakami
 
クラウドお遍路20161001LT_青木由佳
クラウドお遍路20161001LT_青木由佳クラウドお遍路20161001LT_青木由佳
クラウドお遍路20161001LT_青木由佳由佳 青木
 
IT女子勉強会LT_どうしようもなくてもキャリアを創れ
IT女子勉強会LT_どうしようもなくてもキャリアを創れIT女子勉強会LT_どうしようもなくてもキャリアを創れ
IT女子勉強会LT_どうしようもなくてもキャリアを創れ由佳 青木
 
отчёт Buybrand expo 2012
отчёт Buybrand expo 2012отчёт Buybrand expo 2012
отчёт Buybrand expo 2012Victoria Kazakova
 
JAWS-UG開催情報 20170125-8th初心者支部
JAWS-UG開催情報 20170125-8th初心者支部JAWS-UG開催情報 20170125-8th初心者支部
JAWS-UG開催情報 20170125-8th初心者支部由佳 青木
 
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室Yusuke Ando
 
AWSreinvent2016社内報告yuka_jyotei
AWSreinvent2016社内報告yuka_jyoteiAWSreinvent2016社内報告yuka_jyotei
AWSreinvent2016社内報告yuka_jyotei由佳 青木
 
型超ざっくり入門@ハンズラボ社内勉強会
型超ざっくり入門@ハンズラボ社内勉強会型超ざっくり入門@ハンズラボ社内勉強会
型超ざっくり入門@ハンズラボ社内勉強会Yusuke Usui
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたしRyunosuke SATO
 

Destacado (20)

Security Advisories Checker on Travis/Circle CI
Security Advisories Checker on Travis/Circle CISecurity Advisories Checker on Travis/Circle CI
Security Advisories Checker on Travis/Circle CI
 
Re: WebServer BenchMarking
Re: WebServer BenchMarkingRe: WebServer BenchMarking
Re: WebServer BenchMarking
 
apachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin ServerっぽいやつをつくったapachehereというPHPのBuiltin Serverっぽいやつをつくった
apachehereというPHPのBuiltin Serverっぽいやつをつくった
 
What's new in Symfony3
What's new in Symfony3What's new in Symfony3
What's new in Symfony3
 
install PHP7 on CentOS7 by Ansible
install PHP7 on CentOS7 by Ansibleinstall PHP7 on CentOS7 by Ansible
install PHP7 on CentOS7 by Ansible
 
Composer並列化プラグイン #phpblt
Composer並列化プラグイン #phpblt Composer並列化プラグイン #phpblt
Composer並列化プラグイン #phpblt
 
新標準PSRに学ぶきれいなPHP
新標準PSRに学ぶきれいなPHP新標準PSRに学ぶきれいなPHP
新標準PSRに学ぶきれいなPHP
 
MBSハッカソン協賛品_ハンズラボ20170211
MBSハッカソン協賛品_ハンズラボ20170211MBSハッカソン協賛品_ハンズラボ20170211
MBSハッカソン協賛品_ハンズラボ20170211
 
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろうPHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろう
 
とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)
とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)
とある小売IT企業での新卒仮想プロジェクト(工具共有サービス)
 
クラウドお遍路20161001LT_青木由佳
クラウドお遍路20161001LT_青木由佳クラウドお遍路20161001LT_青木由佳
クラウドお遍路20161001LT_青木由佳
 
IT女子勉強会LT_どうしようもなくてもキャリアを創れ
IT女子勉強会LT_どうしようもなくてもキャリアを創れIT女子勉強会LT_どうしようもなくてもキャリアを創れ
IT女子勉強会LT_どうしようもなくてもキャリアを創れ
 
Glt vol48
Glt vol48Glt vol48
Glt vol48
 
отчёт Buybrand expo 2012
отчёт Buybrand expo 2012отчёт Buybrand expo 2012
отчёт Buybrand expo 2012
 
JAWS-UG開催情報 20170125-8th初心者支部
JAWS-UG開催情報 20170125-8th初心者支部JAWS-UG開催情報 20170125-8th初心者支部
JAWS-UG開催情報 20170125-8th初心者支部
 
PHP framework Phalcon
PHP framework PhalconPHP framework Phalcon
PHP framework Phalcon
 
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
 
AWSreinvent2016社内報告yuka_jyotei
AWSreinvent2016社内報告yuka_jyoteiAWSreinvent2016社内報告yuka_jyotei
AWSreinvent2016社内報告yuka_jyotei
 
型超ざっくり入門@ハンズラボ社内勉強会
型超ざっくり入門@ハンズラボ社内勉強会型超ざっくり入門@ハンズラボ社内勉強会
型超ざっくり入門@ハンズラボ社内勉強会
 
Ember コミュニティとわたし
Ember コミュニティとわたしEmber コミュニティとわたし
Ember コミュニティとわたし
 

Similar a Php blt-vol2

イベント企画運営の経験と実際 / The history of organizing events by me
イベント企画運営の経験と実際 / The history of organizing events by meイベント企画運営の経験と実際 / The history of organizing events by me
イベント企画運営の経験と実際 / The history of organizing events by mewhywaita
 
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipmIT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm鉄次 尾形
 
北海道の南端で勉強会やります
北海道の南端で勉強会やります北海道の南端で勉強会やります
北海道の南端で勉強会やりますdeflis
 
設定ファイルに使われそうなデータ形式
設定ファイルに使われそうなデータ形式設定ファイルに使われそうなデータ形式
設定ファイルに使われそうなデータ形式鉄次 尾形
 
やらいや!WebComponents wp-dfes03 LT
やらいや!WebComponents wp-dfes03 LTやらいや!WebComponents wp-dfes03 LT
やらいや!WebComponents wp-dfes03 LTHidetaka Okamoto
 
メルマガシステム失敗談 #perlbeginners
メルマガシステム失敗談 #perlbeginnersメルマガシステム失敗談 #perlbeginners
メルマガシステム失敗談 #perlbeginners鉄次 尾形
 

Similar a Php blt-vol2 (7)

イベント企画運営の経験と実際 / The history of organizing events by me
イベント企画運営の経験と実際 / The history of organizing events by meイベント企画運営の経験と実際 / The history of organizing events by me
イベント企画運営の経験と実際 / The history of organizing events by me
 
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipmIT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
 
それはコトだ
それはコトだそれはコトだ
それはコトだ
 
北海道の南端で勉強会やります
北海道の南端で勉強会やります北海道の南端で勉強会やります
北海道の南端で勉強会やります
 
設定ファイルに使われそうなデータ形式
設定ファイルに使われそうなデータ形式設定ファイルに使われそうなデータ形式
設定ファイルに使われそうなデータ形式
 
やらいや!WebComponents wp-dfes03 LT
やらいや!WebComponents wp-dfes03 LTやらいや!WebComponents wp-dfes03 LT
やらいや!WebComponents wp-dfes03 LT
 
メルマガシステム失敗談 #perlbeginners
メルマガシステム失敗談 #perlbeginnersメルマガシステム失敗談 #perlbeginners
メルマガシステム失敗談 #perlbeginners
 

Más de Masanori Hayashi

「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018Masanori Hayashi
 
人のレガシーを笑うな - レガシー感謝の日
人のレガシーを笑うな  - レガシー感謝の日人のレガシーを笑うな  - レガシー感謝の日
人のレガシーを笑うな - レガシー感謝の日Masanori Hayashi
 
20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれようMasanori Hayashi
 
20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravelMasanori Hayashi
 
JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習Masanori Hayashi
 
ボトルネックを解消せよ
ボトルネックを解消せよボトルネックを解消せよ
ボトルネックを解消せよMasanori Hayashi
 
俺的世界で一番暑い夏
俺的世界で一番暑い夏俺的世界で一番暑い夏
俺的世界で一番暑い夏Masanori Hayashi
 
Soft bank ssl仕様変更について
Soft bank ssl仕様変更についてSoft bank ssl仕様変更について
Soft bank ssl仕様変更についてMasanori Hayashi
 

Más de Masanori Hayashi (10)

「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
「クソコード」言い換えのご提案 - 2018-12-15 #phpcon2018
 
人のレガシーを笑うな - レガシー感謝の日
人のレガシーを笑うな  - レガシー感謝の日人のレガシーを笑うな  - レガシー感謝の日
人のレガシーを笑うな - レガシー感謝の日
 
20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう20180627 phpstudy 長いものに巻かれよう
20180627 phpstudy 長いものに巻かれよう
 
20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel20180425 phpstudy-my-first-laravel
20180425 phpstudy-my-first-laravel
 
JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習JAWS DAYS 2017直前! AWS総復習
JAWS DAYS 2017直前! AWS総復習
 
ボトルネックを解消せよ
ボトルネックを解消せよボトルネックを解消せよ
ボトルネックを解消せよ
 
Glt vol47
Glt vol47Glt vol47
Glt vol47
 
俺的世界で一番暑い夏
俺的世界で一番暑い夏俺的世界で一番暑い夏
俺的世界で一番暑い夏
 
Soft bank ssl仕様変更について
Soft bank ssl仕様変更についてSoft bank ssl仕様変更について
Soft bank ssl仕様変更について
 
20081120 lt11th ace
20081120 lt11th ace20081120 lt11th ace
20081120 lt11th ace
 

Último

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Último (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Php blt-vol2