ぷぎがぽぎ このページをアンテナに追加 RSSフィード

2012-01-21

[] TwigをPhar化

Twigを使うことが多いですよね。そしてもっとデプロイを楽にしたいですよね。

PHPにはpharという(javaでいうjarみたいな)機能があってファイルをまとめることができます。

via: PHP: はじめに - Manual

というわけで、Twigをphar化すれば良いというわけで以下に手順のメモ

compile.phpを作成

まずはtwigをgitから取得

$ git clone https://github.com/fabpot/Twig.git

コンパイラーでtwig.pharを作成

<?php
$phar = new Phar('twig.phar', 0, 'twig.phar');
$phar->buildFromDirectory(__DIR__ . '/Twig.git/lib');
$phar->compressFiles(Phar::GZ);
$phar->setDefaultStub();
$ php compile.php

もし、php.iniでphar.readonly = on になっている場合はエラーが出るのでoffに

あとは、以下のようにphar://で呼び出せばOK

<?php
#require_once __DIR__ . '/Twig.git/lib/Twig/Autoloader.php'; # <= 普通はこっち
require_once 'phar://'. __DIR__ . '/twig.phar/Twig/Autoloader.php'; # <= phar版
Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem(__DIR__.'/templates');
$twig = new Twig_Environment($loader, array(
  'cache' => __DIR__ .'/compilation_cache',
));

echo $twig->render('index.html', array('name' => 'brtriver'));

これで、大量にあったPHPファイルはtwig.pharを扱うだけで済むようになります。

便利ですよね。

gist: https://gist.github.com/1653293

2012-01-18

[] Javascriptで「この結果どうなる?」

via: Wat

上記LT動画から。

笑いのツボまで理解できてないのですが、面白いのでぜひ。

その中で以下のJavascriptで以下を実行したらどーなる?的なのがありました。

答えを見るまえに一度考えてみてください。

1. [] + []
2. [] + {}
3. {} + []
4. {} + {}

答えは画面を下までスクロールさせてください。























答えは以下のように。へぇー。

% /System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc
> [] + []

> [] + {}
[object Object]
> {} + []
0
> {} + {}
NaN
> 

そして、macにあるjscというJavascriptのインタラクティブなコマンドの存在も知らなかった。へぇー。

2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2015 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |