2012-06-10 1 views
0

Возможно ли в vQmod проверять, существует ли метод в классе. Только если он не существует, он внесет изменения.Vqmod только внести изменения, если поиск не существует

Например, на данный момент у меня есть простой vqmod, который вызывает проблемы с другим расширением, которое также вносит одинаковые изменения и вызывает ошибку метода duplicate.

<file name="catalog/model/tool/image.php"> 
    <operation> 
     <search position="after"><![CDATA[ 
      class ModelToolImage extends Model { 
     ]]></search> 
     <add><![CDATA[ 
      public function get($filename) { 
       if (!file_exists(DIR_IMAGE . $filename) || !is_file(DIR_IMAGE . $filename)) { 
        return; 
       } 

       if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) { 
        return HTTPS_IMAGE . $filename; 
       } else { 
        return HTTP_IMAGE . $filename; 
       } 
      } 
     ]]></add> 
    </operation> 
</file> 

Также существует какой-либо способ отдать приоритет одному vqmod над другим. Мне нужно еще два файла vqmod для уже кода vqmod?

ответ

1

Это невозможно добавить, только если метод не существует. Хитрость заключается в том, чтобы «захватить» оригинал или переименовать его. Что касается приоритета, они получают синтаксический анализ a до z, поэтому, если вы хотите, чтобы он был применен первым, назовите его чем-то, что приходит перед другим в алфавитном порядке, или просто добавьте aaa к имени

+0

Нет ли простого способа добавить эту функцию в класс vqmod ? Мне не нравится идея полагаться на имя другого расширения, чтобы всегда приходиться раньше моего. Это может вызвать слишком много проблем, когда люди переименовывают файл и т. Д. –

+0

Я думаю, это также можно было бы использовать для решения проблемы с: Обратите внимание, что файл партнерской библиотеки может не существовать в старых системах. –

+0

Ну, к сожалению, проверка порядка приоритетов только замедлит обработку, поэтому в настоящее время не планируется добавлять что-то подобное в vQmod, особенно когда вы можете просто использовать именование. Если что-то также использует zzz для своих имен, то есть вероятность, что хотите выполнить последний - в этот момент даже порядок приоритета не будет полезен, если они оба борются за него –

Смежные вопросы