PluginProbe
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance / 3.2.5
WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance v3.2.5
4.7.0 4.6.1 4.6.0 4.5.5 4.5.4 4.5.3 4.5.2 3.2.20 3.2.21 3.2.22 3.2.3 3.2.5 3.2.6 3.2.7 3.2.9 3.3.0 3.3.1 3.3.2 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.7.0 3.7.1 All 111 releases
wp-optimize / vendor / kriswallsmith / assetic / docs / ja / define.md

define.md in WP-Optimize – Cache, Compress images, Minify & Clean database to boost page speed & performance 3.2.5, at vendor/kriswallsmith/assetic/docs/ja/define.md

152 lines 6.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 アセットの「オンザフライ」な定義
2 ----------------------------------------
3
4 Asseticの使用方法二つ目は、独立したPHPファイルを使用する代わりに、
5 テンプレートで「オンザフライ」にアセット定義をする方法です。
6 このアプローチでは、PHPテンプレートは下記のようになります。
7
8 <script src="<?php echo assetic_javascripts('js/*', 'yui_js') ?>"></script>
9
10 `assetic_javascripts()`の呼び出しは2つの目的を�
11 �ねています。
12 まず、「フォーミュラローダー」により走査され、アセットの構築、ダンプ、及び出力を行うための「フォーミュラ(処方箋)」が抽出されます。
13 また、テンプレートのレンダー時にも実行され、アセットの出力パスが出力されます。
14
15 Asseticには下記のようなヘルパー関数があります。
16
17 * `assetic_image()`
18 * `assetic_javascripts()`
19 * `assetic_stylesheets()`
20
21 アセットをオンザフライに定義するということは、より高度なテクニックであり、
22 そのため、重い仕事をするサービスに依存することになります。
23 そのうちの重要なものがアセットファクトリです。
24
25 ### アセットファクトリ
26
27 アセットファクトリは、アセットオブジェクトを、�
28 �列とスカラ値のみから、
29 どのように作成するのか把握しています。
30 `assetic_*`ヘルパー関数で使用する記法と同様のものとなります。
31
32 use Assetic\Factory\AssetFactory;
33
34 $factory = new AssetFactory('/path/to/web');
35 $js = $factory->createAsset(array(
36 'js/jquery.js',
37 'js/jquery.plugin.js',
38 'js/application.js',
39 ));
40
41 ### フィルタマネージャー
42
43 ファクトリによって作成されたアセットに対しても、フィルタを適用することができます。
44 そのためには、`FilterManager`を設定して、名前を定義しフィルタを構成します。
45
46 use Assetic\FilterManager;
47 use Assetic\Filter\GoogleClosure\ApiFilter as ClosureFilter;
48
49 $fm = new FilterManager();
50 $fm->set('closure', new ClosureFilter());
51 $factory->setFilterManager($fm);
52
53 $js = $factory->createAsset('js/*', 'closure');
54
55 上記の例では、Google Closure Compilerフィルタをインスタンス化し、
56 フィルタマネージャーを通じて`closure`という名前をつけています。
57 このフィルタマネージャーをアセットファクトリに渡すことで、
58 アセット作成時には、`closure`という名前でフィルタを使用できるようになります。
59
60 ### デバッグモード
61
62 アセットファクトリは、デバッグモードというコンセプトも取り�
63 �れており、
64 デバッグモードの設定により、ファクトリが作成するアセットから、
65 特定のフィルタを除外することができます。
66
67 たとえば、YUI Compressorは大変素晴らしいのですが、圧縮されたJavascriptを
68 デバッグするのは大変難しく、プロダクション環境でのみの使用が適切でしょう。
69
70 use Asset\Factory\AssetFactory;
71
72 $factory = new AssetFactory('/path/to/web', true); // デバッグモードON
73 $factory->setFilterManager($fm);
74 $js = $factory->createAsset('js/*', '?closure');
75
76 フィルタ名`closure`の前にクエスチョンマークを記述すると、ファクトリに対して、
77 このフィルタはオプションであり、
78 デバッグモードがOFFの時にのみ適用するように通知することができます。
79
80 ### アセットマネージャーとアセットリファレンス
81
82 アセットファクトリにはもう一つ特別な記法があり、別の場所で定義した
83 アセットを参�
84 �することができるようになります。
85 これを「アセットリファレンス」と呼び、アセットマネージャーを通じて、
86 フィルタマネージャーと同様の、名前によるアセットの構成が可能です。
87
88 use Assetic\AssetManager;
89 use Assetic\Asset\FileAsset;
90 use Assetic\Factory\AssetFactory;
91
92 $am = new AssetManager();
93 $am->set('jquery', new FileAsset('/path/to/jquery.js'));
94
95 $factory = new AssetFactory('/path/to/web');
96 $factory->setAssetManager($am);
97
98 $js = $factory->createAsset(array(
99 '@jquery',
100 'js/application.js',
101 ));
102
103 ### テンプレートからのアセット抽出
104
105 テンプレート�
106 でアセット群を定義したら、「フォーミュラローダー」サービスを使用して、
107 アセットの定義を抽出します。
108
109 use Assetic\Factory\Loader\FunctionCallsFormulaLoader;
110 use Assetic\Factory\Resource\FileResource;
111
112 $loader = new FunctionCallsFormulaLoader($factory);
113 $formulae = $loader->load(new FileResource('/path/to/template.php'));
114
115 これらのフォーミュラ自体は、それ自体で使途はあまりなく、
116 アセットファクトリが目的のアセットオブジェクトを作成するに足る�
117 報しか持っていません。
118 `LazyAssetManager`でラップすることで有益なものとなります。
119
120 ### レイジーなアセットマネージャー
121
122 このサービスは、アセットファクトリと、1つ以上のフォーミュラローダーから成っており、
123 裏方のサービス間のグルとして動作しますが、表面上では、通常のアセットマネージャーと同じように使用することができます。
124
125 use Assetic\Asset\FileAsset;
126 use Assetic\Factory\LazyAssetManager;
127 use Assetic\Factory\Loader\FunctionCallsFormulaLoader;
128 use Assetic\Factory\Resource\DirectoryResource;
129
130 $am = new LazyAssetManager($factory);
131 $am->set('jquery', new FileAsset('/path/to/jquery.js'));
132 $am->setLoader('php', new FunctionCallsFormulaLoader($factory));
133 $am->addResource(new DirectoryResource('/path/to/templates', '/\.php$/'), 'php');
134
135 ### アセットライター
136
137 作成したアセットマネージャーが、テンプレート�
138 で定義した�
139 �てのアセットを把握したら、
140 アセットライターを使用して、テンプレートが参�
141 �することになる実際のファイルを作成します。
142
143 use Assetic\AssetWriter;
144
145 $writer = new AssetWriter('/path/to/web');
146 $writer->writeManagerAssets($am);
147
148 上記のスクリプトを実行すると、アセットマネージャー�
149 のすべてのアセットがメモリに読み込まれ、
150 指定したフィルタが適用された後、�
151 �開領域に静的ファイルとしてダンプされ、準備完了となります。
152