Yii extension

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
sandrain
Сообщения: 53
Зарегистрирован: 2011.10.27, 14:07

Yii extension

Сообщение sandrain »

Создал экстеншен.

Код: Выделить всё

class Magic extends PhpThumbFactory
{

    public function __call($method, $args) {

         echo $method;

        }

} 
и юзаю его так

Код: Выделить всё

 $thumb = Yii::app()->magic->create(path); 
Вопрос...можно ли где-то в классе magic вывести метод "create" и "path" стрингом? Сейчас выводится слово "init"
Я просто хочу сохранять изображения в БД с хэшем метода и параметров, чтоб потом повторно не ресайзить картинку, а доставать из бд.
sandrain
Сообщения: 53
Зарегистрирован: 2011.10.27, 14:07

Re: Yii extension

Сообщение sandrain »

неужели никто не может помочь?
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: Yii extension

Сообщение slavcodev »

чтобы юзать как Yii::app()->magic->
класс Magic должен implements IApplicationComponent
там обязательный метод init

это как минимум
Жду Yii 3!
sandrain
Сообщения: 53
Зарегистрирован: 2011.10.27, 14:07

Re: Yii extension

Сообщение sandrain »

следующий код делает почти то что мне надо

Код: Выделить всё

// Initialize library
Yii::import('application.extensions.magic');
require_once("PhpThumb/ThumbLib.inc.php");

class Magic extends CApplicationComponent{

    function __call($method,$params){
        echo $method.' '.implode(",",$params);
        return call_user_func_array(array("PhpThumbFactory",$method), $params);
    }

}
 
Но в нём есть недочёт, например

Код: Выделить всё

 $thumb = Yii::app()->magic->create(Yii::getPathOfAlias('webroot')."/images/wp.jpg");
 $thumb->resize(400,250); 
 

как вы видите $thumb->resize(400,250); уже возвращает метод класса PhpThumbFactory в обход моего класса Magic
неужели так сложно с этим в PHP? при каждом вызове метода получать имя метода и параметры?

если я напишу функционал мне что придется вставлять его в каждую функцию, только потому что именно там я могу получить метод и параметры, а иначе как?
Ответить