• ブログTOP
  • AI・ディープラーニング
  • AR
  • VR
  • WEBサイト
  • WEBマーケティング
  • SEO
  • SNS
  • その他
  • お問い合わせ

ALAKI株式会社

COZIKEEいつまでも使えるTech情報発信ブログ

リクルートサイトはこちら >

twig30分クッキング-はじめてのtwigインストール編-

2016年7月1日

  • このエントリーをはてなブックマークに追加

こんばんは、Webプログラマの篠田です。

もう7月ですね。京都生まれ京都育ちの私にとっては祇園祭の季節でもあります。
今年は17日(日)が山鉾巡行なので、宵山は16日なので時間があれば行きたいですね。

さて、前回(私の回の)予告をしていたとおり本日は「twig30分クッキング(?)」と題しましてPHPテンプレートエンジンの1つである「twig(トゥイグ)」のインストールと簡単な使い方をご紹介していきたいとおもいます。

この記事の目次

  • 1 composerをインストールする
  • 2 twigをインストールする
  • 3 気になるファイルが勝手に作成されている
  • 4 とりあえずtwigを使ってみる
  • 5 まとめ

composerをインストールする

早速、twigと関係のなさそうなものをインストールさせようとしていますが、この「composer(コンポーザー)」というのがインストールしようとするライブラリの依存関係を管理してくれるツールになります。

今回はtwigのみなのでtwig公式サイトから直接「.tgz」ファイルをダウンロードして展開するという方法もできなくもないのですが、PHPで使うライブラリ同士の依存関係を意識しながらファイルを用意するというのは手間になります。

そこで、「『twig』をインストールしたいんだけど関係するライブラリがあれば一緒にインストールしてね」というざっくりインストールができるようにするのが「composer」というツールなのです。

「composer」を使うことでの利便性として「autoload(オートロード)」と呼ばれる依存関係があるクラスを一括してincludeしてくれるプログラムを利用することができる点です。

簡単に「autoload」を説明すると「いろいろなクラスを利用したいけど、どのファイルをincludeしないといけないかを気にしなくてもクラスを使えるようにする便利なプログラム」というざっくり理解で良いかと思います。
※詳しい話は別途したいと思います。

では、今回は「composer」を使って「twig」をインストールしたいと思うので先に「composer」をインストールしたいと思います。

まずは、PHPのプログラムを保存する場所を作り、そこに「composer」をインストールしたいと思います。

「xampp」を使っている場合は「htdocs」ディレクトリ直下に「develop」ディレクトリを作成しましょう。
※「develop」ディレクトリはあくまでも仮なので自由に書き換えて下さい。
作成したら「develop」ディレクトリ内に移動します。

1
2
$ mkdir develop
$ cd develop

では、「develop」ディレクトリ内に「composer」をインストールしましょう。
下記のようなコマンドを実行します。

1
$  curl -s http://getcomposer.org/installer | php

上記を実行すると下記のようなメッセージが表示されてインストール完了です。

1
2
3
4
5
All settings correct for using Composer
Downloading 1.1.3...
 
Composer successfully installed to: [developがあるフォルダまでのパス]/develop/composer.phar
Use it: php composer.phar

「1.1.3」というのは「2016.07.01時点」での最新の「composer」のバージョンになります。

「develop」ディレクトリ内に「composer.phar」というファイルができていれば問題ありません。

twigをインストールする

今回は「twig」のみをインストールするので下記のコマンドを「composer.phar」がある階層で実行します。

1
$ php composer.phar require twig/twig:1.*

「composer」でのインストールはそこそこ時間がかかりますのでのんびり待ちましょう。
放っておくと下記のようなメッセージが表示されてインストール完了です。

1
2
3
4
5
6
7
8
9
./composer.json has been created
Loading composer repositories with package information
Updating dependencies (including require-dev)
 
  - Installing twig/twig (v1.24.1)
    Downloading: 100%
 
Writing lock file
Generating autoload files

「2016.07.01時点」での「twig」の最新版は「1.24.1」です。

これでtwigを使う準備ができました。

気になるファイルが勝手に作成されている

先程まで空だった「develop」ディレクトリの中が賑やかになってきました。

特に「composer.phar」を使って「twig」をインストールした時に下記のファイルが作られています。
・composer.json
・composer.lock
・vendorディレクトリ

composer.jsonとは

これは「composer」を使ってインストールするライブラリを定義しているファイルです。
今回であれば「twig/twig:1.*」というのが書かれており、twigの「1.*系の最新版」をインストールするという設定が書かれています。

必要に応じて追加したいライブラリ情報を「composer.json」に追記して再度「composer」を利用することで新しいライブラリを追加することができます。

これを見れば、だいたいどのようなライブラリが使われているのかが分かります。

composer.lockとは

これは先程「composer.json」でインストールされたファイルのバージョン情報が書かれています。
「composer.json」があるとこの内容を優先して「composer」が動くので最新のバージョンにはバージョンアップをしてくれません。

チーム間でインストールしているライブラリのバージョンを統一化するときは「composer.lock」を使ってインストールします。

ライブラリのバージョンをアップさせたい場合は「composer.lock」を削除して「composer」を実行することでライブラリが最新版にアップデートされます。

vendorディレクトリとは

「composer」でインストールしたライブラリが保存されているディレクトリになります。
ポイントは、この中にある「autoload.php」をインクルードすれば「vendor」ディレクトリに保存されているライブラリを一括で利用することができるという点です。

とりあえずtwigを使ってみる

やっと準備も整いましたのでPHPからtwigを使ってメッセージを表示してみたいと思います。

twigのサンプル
PHP
1
2
3
4
5
6
7
<?php
require_once './vendor/autoload.php';
 
$loader = new Twig_Loader_String();
$twig = new Twig_Environment($loader);
 
echo $twig->render('Hello {{ message }}!', array('message' => 'twig World'));

まずは、「require_once ‘./vendor/autoload.php’;」でvendor内にインストールされているライブラリを読み込みます。
なので、わざわざ「twig」をincludeする必要はありません。

次に「Twig_Loader_String」と「Twig_Environment」のクラスを読み込みtwig本体を呼び出します。

最後に「render」メソッドの第1引数に表示したい文字列と「{{ message }}」で置き換える変数を用意し、第2引数に「{{ message }}」の中身となる連想配列を用意します。

これを実行すればブラウザ上に「Hello twig World!」と表示されます。

まとめ

「なんだかテンプレートを作った気がしない」と思っている人も多いかと思いますがこれがtwigの超基礎的な使い方になります。

次回は具体的なtwig内での処理の使い方やテンプレートらしい使い方をご紹介できればなと思います。

  • ツイート
  • このエントリーをはてなブックマークに追加

You may also like...

  • 57520c888e69e9c333ba30b67fcc0f79_m

    「gzip圧縮」でWebサイトを高速化しよう!【mod_rewrite編】

    15 12月, 2017

  • スクリーンショット 2022-11-24 20.18.47

    【Unity】「Shape2D」の角丸がぼやける問題を解決する

    24 11月, 2022

  • f507fa6996eb98365daaf6a22e16686f_s

    仮想環境「Vagrant」をスムーズに別のPCに移管する方法

    11 1月, 2019

プログラマー募集
  • Next story 仕事ができる人になるための、メールの書き方4つのポイント
  • Previous story CSSをもっと便利に!Sassの良いとこと気をつけるべきとこを紹介!

弊社サービス

MONJI+ MUGHEN ALAKI クラウド型受発注システム さよなら過去のAR。WebARがイベント集客に革命を起こします。

運営会社

ALAKI株式会社 ALAKI株式会社採用サイト

人気の記事

  • alaki1462_A_businessman_who_works_logically_1da80a2e-c297-4911-bdd6-feba0ebf1357

    仕事術

    【書籍要約】数学的な仕事術大全

    4 11月, 2024

  • fv-main-img-min

    空間コンピューティング

    世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました

    22 6月, 2023

  • Virtual reality players isometric vector illustration. VR UI and navigation. Futuristic digital technology. Virtual screen. Mixed reality 3d concept. Person in VR headset. Web banner idea

    AR

    Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ

    6 6月, 2023

  • AWE

    未分類

    ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!

    26 5月, 2023

  • python-logo-master-v3-TM

    pyhotn / 業務効率化

    「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

    2 2月, 2023

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

アーカイブ

  • 2024年11月
  • 2023年6月
  • 2023年5月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年2月
  • 2021年12月
  • 2021年9月
  • 2021年7月
  • 2021年6月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年6月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月
  • 2018年1月
  • 2017年12月
  • 2017年11月
  • 2017年10月
  • 2017年9月
  • 2017年8月
  • 2017年7月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年2月
  • 2017年1月
  • 2016年12月
  • 2016年11月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年7月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年7月
  • 2015年3月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年10月
  • 2014年9月
  • 2014年8月
  • 2014年7月
  • 2014年6月
  • 2013年10月
  • 2013年9月

Facebook

お問い合わせ

お問い合わせ

人気の記事

  • 【書籍要約】数学的な仕事術大全
  • 世界初!「空間コンピューティング」を専用端末不要、スマホのWebブラウザのみで実現する『Web XR Site』を公開しました
  • Appleから新世代MRグラス「Vision Pro」の登場 – デジタルと現実世界が融合する新時代へ
  • ARアプリ『MUGHEN』が世界最大のAR/VRアワード「AWE」のファイナリストに選出されました!
  • 「SwinIR」で高画質化した画像を pythonを使用して一括で元のサイズに戻す方法

カテゴリー

  • AI・ディープラーニング
  • AR
  • BtoB
  • CMS
  • Git
  • Google AdWords
  • gulp
  • Javascript
  • Laravel
  • Photoshop
  • Pug
  • pyhotn
  • Sass
  • SEO
  • SNS
  • Twitter広告
  • VR
  • Web3.0
  • WEBサイト
  • WEBマーケティング
  • YouTube
  • コーディング
  • システム開発
  • スマートフォンサイト
  • セキュリティ
  • セミナー
  • その他
  • ツール
  • デザイン
  • ベトナムレポート
  • 仕事術
  • 未分類
  • 業務効率化
  • 空間コンピューティング
  • 色

検索

ALAKI株式会社 © 2025. All Rights Reserved.