Интеграция Google Minify с Zend Framework - PullRequest
0 голосов
/ 14 августа 2011

поэтому я попытался интегрировать каркас minify и zend

http://code.google.com/p/minify/

В основном я скопировал содержимое файла index.php minify в действие zend:

и изменил третью строку с

define('MINIFY_MIN_DIR', dirname(__FILE__));

на

define('MINIFY_MIN_DIR', 'Z:\wamp2\www\min');

, где находится папка minify

, вот полное действие:

  public function test2Action()
    {
      define('MINIFY_MIN_DIR', 'Z:\wamp2\www\min');
       // load config
      require MINIFY_MIN_DIR . '/config.php';

      // setup include path
      set_include_path($min_libPath . PATH_SEPARATOR . get_include_path());

      require 'Minify.php';

      Minify::$uploaderHoursBehind = $min_uploaderHoursBehind;
      Minify::setCache(
          isset($min_cachePath) ? $min_cachePath : ''
          ,$min_cacheFileLocking
      );

      if ($min_documentRoot) {
          $_SERVER['DOCUMENT_ROOT'] = $min_documentRoot;
      } elseif (0 === stripos(PHP_OS, 'win')) {
          Minify::setDocRoot(); // IIS may need help
      }

      $min_serveOptions['minifierOptions']['text/css']['symlinks'] = $min_symlinks;

      if ($min_allowDebugFlag && isset($_GET['debug'])) {
          $min_serveOptions['debug'] = true;
      }

      if ($min_errorLogger) {
          require_once 'Minify/Logger.php';
          if (true === $min_errorLogger) {
              require_once 'FirePHP.php';
              Minify_Logger::setLogger(FirePHP::getInstance(true));
          } else {
              Minify_Logger::setLogger($min_errorLogger);
          }
      }

      // check for URI versioning
      if (preg_match('/&\\d/', $_SERVER['QUERY_STRING'])) {
          $min_serveOptions['maxAge'] = 31536000;
      }
      if (isset($_GET['g'])) {
          // well need groups config
          $min_serveOptions['minApp']['groups'] = (require MINIFY_MIN_DIR . '/groupsConfig.php');
      }
      if (isset($_GET['f']) || isset($_GET['g'])) {
          // serve!
         Minify::serve('MinApp', $min_serveOptions);
         //echo Minify::combine(array('//css/DisplayHelpers/DisplayObject.css'),$min_serveOptions);

      } else{
         echo 'fail';
      }

        // action body
    }

обратите внимание на эти строки ... Я добавил закомментированную строку объединения

 Minify::serve('MinApp', $min_serveOptions);
 //echo Minify::combine(array('//css/DisplayHelpers/DisplayObject.css'),$min_serveOptions);

строка Minify::serve('MinApp', $min_serveOptions); находится в исходном index.php .... если я ее там оставлю, он не вернет правильные минифайды должным образом и вместо этого вернет немного сумасшедшего бреда, когда я перейду к http://localhost/tester/test2?f=/css/DisplayHelpers/DisplayObject.css ...

с другой стороны, когда я перейду к http://localhost/min?f=/css/DisplayHelpers/DisplayObject.css, который использует index.php minifyс другой стороны, он будет работать правильно

, если я раскомментирую строку объединения и прокомментирую строку подачи, она также будет работать правильно, но не будет выполнять кэширование и т. д.

любые идеи о том, какразрешить использование обычного метода serve в действии zend, чтобы я мог использовать thкеш?

1 Ответ

1 голос
/ 14 августа 2011

Почему действие плюс, в этом проекте уже есть Zend helper .

...