3

この質問は、実用的というよりも理論的なものです。PHPフレームワークSymphony/Zendに基づくプロジェクトがあるとしましょう。フロントエンドの作業にもgulpを使用しています。このプロジェクトを専門的な方法で行いたいので、jade、clean、uglify、minify、gzip、imagemin、revなどの gulp プラグインを使用します。この gulp-rev が何かわからない場合は、次のように説明します。

Static asset revisioning by appending content hash to filenames unicorn.css → unicorn-d41d8cd98f.css

たとえば、静的ファイルをキャッシュするのに適しています。

だから、ここに問題があります...
私はgulpタスクを実行し、次のファイルを取得しました:

- assets
  - css
    - style-bfd65634.css
  - js
    - vendor-mkg5454.js
  - img
    - background-ok54353.png
   etc...

フロントエンドの作業が完了したら、それを PHP フレームワークのビュー ファイル (phtml ファイル) に入れたいと思います。例: layout.phtml

...
<link type="text/css" rel="stylesheet" media="screen" href="<?php echo $this->basePath(); ?>/assets/css/style-bfd65634.css">
...
<div id="logo">
    <img src="<?php echo $this->basePath(); ?>/assets/img/background-ok54353.png" />
</div>
...

同じことがjsファイル、画像などにも当てはまります。
数週間後、CSSスタイルで何かを変更する必要があります。PHP フレームワークから phtml ファイルを変更せずに gulp タスクを再実行するにはどうすればよいですか? または、すべての phtml ファイルで変更されたファイルを手動で変更する必要がありますか?
もしそうなら、gulp-rev のようなプラグインを使用するポイントは何ですか? 静的なウェブサイトだけですか?私の知る限り、jadeファイルをPHPタグ付きのphtmlに変換するプラグインはありません

4

3 に答える 3

2

gulp-injectを使用して、新しく作成されたファイルを特定の場所に挿入する必要があります。

<!DOCTYPE html>
<html>
<head>
  <title>My index</title>
  <!-- inject:css -->
  <link rel="stylesheet" href="/src/style1.css">
  <link rel="stylesheet" href="/src/style2.css">
  <!-- endinject -->
</head>
<body>
于 2016-05-17T11:23:30.427 に答える
0

静的なウェブサイトだけですか?

ほとんどはい。

php で同じことを行うには、ラッパー関数を使用してリソース アセットの URL を表示する必要があります。

そのラッパー関数は、相対 URL を取得し、それを実際のファイル パスに一致させ、ファイルの最終更新時刻を取得し、返された URL に追加します。url/to/asset.some?l=<filemtime value>

http://php.net/manual/fr/function.filemtime.phpを参照してください


別の方法は、grunt ビルド チェーンを介して php ファイルをビルドすることです。wiredep を参照してください。しかし、私はそれをお勧めしません。https://github.com/stephenplusplus/grunt-wiredepを参照してください

于 2016-05-17T09:49:00.157 に答える