2016-03-29 11 views
0

私はクライアント用のテンプレートライブラリを作成しています。ライブラリの目的は、会社が所有するすべてのWebサイトに標準化されたシェルを提供することです。他の開発者は、例えば、作曲とライブラリをインポートし、数行のコードでベーステンプレートを作成することができるはずです。:公共資産を持つComposerのPHPライブラリを作成する

$Template = new Template; 
$Template->setContent('Hello world!'); 
$Template->render(); 

これは、標準化されたシェル内のコンテンツをレンダリングします。これは簡単な例です。ライブラリは、標準化されたスライダ、メニューなどの多くの機能を提供します。

このライブラリはTwigに依存しますが、フロントエンドアセットの束にも依存します。カスタム画像、javascripts、css、JqueryやBootstrap CSSなどのサードパーティ製のもののようなものです。これらのアセットは/ assets /フォルダーに格納されます。

Composerでライブラリをインストールすると、すべてがWebサイトのルートにある/ vendors /フォルダに保存されます。しかし、/ assets /フォルダは/ public_html /にあり、アクセス可能である必要があります。

解決策は:/ assets /フォルダを/ public_html /にコピーするだけです。しかし、フロントエンドの資産に応じてリポジトリが増えていると確信しています。これらの資産を/ public_html /で利用できる最も一般的な方法は何ですか?

答えて

0

私の心に浮かぶのは、Symfony2バンドルシステムです。定義する各バンドルは、AppKernelに登録する必要があります。バンドルに、/ web/bundles/short_bundle_name /フォルダの下にリンクまたはコピーされるアセットが含まれている場合。

あなたの依存関係の資産をフォローアップできるようにするには、何らかの種類のレジストリメカニズムが必要です。そのため、どのlibsファイルにpublic_htmlフォルダーの上にコピー/リンクする必要がある資産を登録できます。

asseticを使用してプレーンアセット(マージ、リライト、その他のフィルタ)をキャッシュ無効化機能で処理することも検討してください。

0

バックエンドの依存関係にはComposer、フロントエンドにはBower、ファイルの移動と処理にはGruntの組み合わせを使用できます。

あなたは composer.json

"scripts": { 
    "post-install-cmd": [ 
     "bower install", 
     "grunt" 
    ], 
    "post-update-cmd": [ 
     "bower install", 
     "grunt" 
    ] 
} 

に以下を追加して、あなたは基本的なBowerスクリプトbowser.json

{ 
    "name": "my/project", 
    "dependencies": { 
     "jquery": "*", 
     "bootstrap": "*" 
    } 
} 

を持っている。そして、あなたがこれを使用することができます基本的なGruntスクリプトgruntfile.jsを持ってComposer

https://github.com/gruntjs/grunt-contrib-copy)そうです。

copy: { 
    main: { 
    expand: true, 
    src: 'src/*', 
    dest: 'dest/', 
    }, 
}, 

これで、すべてのファイルをインストールまたは更新するために作曲者コマンドを実行するだけで済みます。

注:あなたの資産の全てがComposer

にある場合、あなたは Bowerを使用する必要はありません
関連する問題