When working within an MVC architecture, it’s common to use a template library to populate the dynamic content of our views. There are dozens of such libraries available for PHP, but Twig is one of the standouts because of the ability to extend core features with custom implementations. In this article we’ll explore how Twig templates can be extended using template inheritance, filters, and functi
A quick look at one way to use the same controller action and Twig template (or just template) for displaying a full page and also just the inner content for an Ajax request in a Symfony2 application. This is using the ability to set which template a twig template extends from dynamically (which is shown here in the Twig documentation). So assuming we have a current inner template that looks like
Symfony Advent Calendar JP 2011 : ATND 9日目の記事です。 Symfony2.0.7が昨日リリースされましたね。今回のアップデートで個人的に熱かったのはSymfony2にバンドルされるTwigのバージョンがv1.1.2からv1.4.0へアップグレードされた所です。Twigは便利な機能もいっぱいありますのでこの機会に紹介したいと思います。 for お馴染みのループに使う構文です。一般的な使い方はこうです。 <ul> {% for item in article %} <li>{{ item.title }}</li> {% endfor %} </ul> もちろん配列の添字にもアクセスできます。 <ul> {% for key, item in article %} <li>{{ key }}:{{ item.title }}</li> {% endfo
2. being dangerous with Twig A 5-step guide to using Twig – the fast, secure and extensible PHP templating engine – to create clean template code, leverage powerful filters, make your designers write you love letters, write template functions that don't clog up your global PHP namespace, take advantage of true template inheritance, hang out with Django programmers and be able to talk template synt
あけましておめでとうございます。小川です。 本日はTwigでカスタムタグを追加する方法を紹介します。 ■Twig TwigはPHPで実装されたテンプレートエンジンの1つで、Python製のテンプレートエンジンのJinjaとほぼ同じ構文を持っています。 Webアプリケーションフレームワークsymfonyの次期バージョンでもあるSymfony2で採用されることが決定しており、Symfony界隈を中心に注目を浴びているテンプレートエンジンです。 <h1>Categories</h1> {% if categories|length > 0 %} <ul> {% for category in categories %} <li>{{ category.name }}</li> {% endfor %} </ul> {% endif %} 上記がTwigを使ったサンプルコードです。「{% %}」や
id:cocoitiおにいちゃんががんばってくれているsfTwigPluginで遊んでみました。Twigは最近注目のテンプレートエンジンですね。 symfonyのpluginsディレクトリにsfTwigPluginいれるまでは終わってるとして、まずはPluginを有効に。config/ProjectConfiguration.class.phpを修正 <?php // sfCoreAutoload... class ProjectConfiguration extends sfProjectConfiguration { public function setup() { // ... $this->enablePlugins('sfTwigPlugin'); } 次は各アクションがテンプレート出力時にsfPHPViewクラスではなくsfTwigViewを利用するように指定。通常、View
以前の記事で話させていただくチャンスがいただけたので、しゃべってきました。 で、しゃべった内容は続きからどうぞ! 初めてのTwig+ZendFrameworkView more presentations from Nul ly. しゃべってきたのは良いのですが、話すスピード速い&URLガン無視して申し訳なかったです…。 懇親会も参加させて頂き、すごく楽しかったです。 やっぱり、いろいろな人と接することができるってのは良いことだと再実感。 Share this on del.icio.us Digg this! Stumble upon something good? Share it on StumbleUpon Post this to MySpace Share this on Facebook Tweet This! Subscribe to the comments for th
夜21時くらいからはじめてこんな時間までかかってしまったが、sfTwigPluginをこういう風に使いたいなーってサンプルコードを書いてみた。 http://github.com/cocoiti/cocowiki/ 眠いのであとでちゃんと書くが、要約すると、デザインにかかわるテンプレートファイルは通常symfonyのレイアウトファイルを配置するディレクトリに配置する。 module側にはアプリケーションにかかわる部分(主にフォーム関係やエラーメッセージ)を入れる。 ということがやりたかった。 そして、それを実装するためには現在のsfTwigPluginは機能がたりなかったのでsfTwigPluginをforkしてEventListenerを追加した。 http://github.com/cocoiti/sfTwigPlugin/ 下記のようなコードでEventを追加してやれば、継承や本体の
昨年度からずーっとやっていた「DoctrineとTwig」をどうにか連携(単に使うだけ)したい! と思ってて先程なにやら面倒なことになったのでメモ的に書いてみます。 先に言っておくと、「DoctrineとTwigの相性が完全に悪い」というわけでもなく、「DoctrineとTwigの相性は最高だ!」というわけでもありません。 DoctrineとTwigで発生したのは以下のような問題。 Doctrineでyml(※1)から生成したモデルからデータを抽出し、抽出したデータをView(※2)の変数に突っ込み、index.phtmlで変数を利用出来るようにして、いざアクセスしてみたらnullだよ! ※ここではController、Actionともにindexであるとします。 ※1今回利用しているDoctrineで生成したモデルは、「1つのデータを持ってる(hasOne)」の関係性で行っています。 ※
Twigいいよ!とかいってたけど、それを使うフレームワーク書いてる精神的な余裕がなくなったので、symfony1.4と組み合わせて使えないかしらといいろごにょってみた。 オリジナルはここのなんだけど10月くらいに更新をやめてしまってる。 http://github.com/henrikbjorn/sfTwigPlugin とうぜん絶賛開発中だったTwigがそのままでは動くわけもなくforkしてみた。 http://github.com/cocoiti/sfTwigPlugin とりあえず試してみたいひとは下記な感じで 使い方 インストール $ cd {PROJECT_DIR]/plugins/ $ git clone git://github.com/cocoiti/sfTwigPlugin.git $ cd sfTwigPlugins/ $ git submodule init $ gi
そもそもPHP自体がテンプレートみたいなものなのにさらにテンプレートエンジンとか使う理由って何ですか? http://d.hatena.ne.jp/xmalloc/20091225/1261709421 nimpadでは、以前はテンプレートエンジンとして素のPHPを使っていましたが、最近Twigというテンプレートエンジンに切り替えました。 理由は幾つかあるのですがその中から主なものを挙げてみました。 テンプレートの継承ができる テンプレートを継承できるのは便利です。レイアウトなどは同じだけど細かいところは違う、というようなテンプレートを書くのが格段に楽になります。 素のPHPでレイアウトなどを共有する場合、includeする部品ひとつひとつを他のファイルに切り出してやる必要があるんですが、継承に比べるとこれは面倒です。 素のPHPからTwigに乗り換えた一番大きな理由はこれです。 変数を勝
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
The flexible, fast, and secure template engine for PHP Twig is a modern template engine for PHP Fast: Twig compiles templates down to plain optimized PHP code. The overhead compared to regular PHP code was reduced to the very minimum. Secure: Twig has a sandbox mode to evaluate untrusted template code. This allows Twig to be used as a template language for applications where users may modify the t
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く