Глобальная настройка для всех URL-адресов изображений в CakePHP - PullRequest
2 голосов
/ 07 марта 2012

Можно ли в любом случае установить глобальную настройку изображения, маршрут или что-либо еще, чтобы все изображения ссылались на URL CDN без необходимости обновления каждого изображения?Поэтому, когда я использую HTML-помощник следующим образом:

$this->Html->img('some_image.jpg');

Вместо ссылки /img/some_image.jpg, он будет указывать на:

http://cdn.example.com/img/some_image.jpg

ОБНОВЛЕНИЕ

Окончательное решение было простым.Спасибо @burzum за толчок в правильном направлении.Вот что я сделал.

В AppController я добавил:

public $helpers = array(
    'Html' => array(
        'className' => 'MyHtml'
    )
);

Затем я создал помощник по переопределению:

<?php
// app/View/Helper/MyHtmlHelper.php
App::uses('HtmlHelper', 'View/Helper');
class MyHtmlHelper extends HtmlHelper {
    // Add your code to override the core HtmlHelper
    public function image($path, $options = array()) {
        $path = 'http://cdn.localhost/'.$path;
        return parent::image($path, $options);
    }
}

1 Ответ

4 голосов
/ 07 марта 2012

Просто перезапишите метод image () в настраиваемом помощнике, расширяющем HtmlHelper, и используйте функцию псевдонима 2.1 для помощников:

public $helpers = array(
    'Html' => array(
        'className' => 'MyHtml'
    )
);
...