Задать вопрос
vitaly_KF
@vitaly_KF
Разработчик Qt/C++

Вызов Gii из своего кода?

Всем привет.


Мне необходимо из собственного кода вызывать регенерацию моделей, хорошо бы это делать при помощи вызова gii через некий метод.


К сожалению все мои потуги найти нечто подобное в самом Gii или вызывать его при помощи баловства с get/post запросов не увенчались успехами.


Пришлось использовать yiic shell, но ведь все знают, что он является устаревшим и его использование не приветствуется. да и просто мне не в кайф вызывать из консоли методы генерации модели, сейчас приходится делать нечто подобное:
$protectedPath = Yii::app()->basePath . '/';
$modelsPath = $protectedPath . "models/";
$modelFilePath = $modelsPath . get_class($this) . ".php";
$yiicFilePath = $protectedPath . "yiic";
$configFilePath = $protectedPath . "config/console.php";

unlink ($modelFilePath);
$out = shell_exec('echo "nmodel ' . get_class($this) . ' ' . $this->tableName() . '" | ' . $yiicFilePath . ' shell ' . $configFilePath);



Так то всё работает, но мне не нравится сам способ, которым я добился результат. Подскажите что-нибудь?


Ах да, чтобы сразу пропали вопросы зачем мне это — я реализую возможность редактирования таблиц БД и соответственно появляется необходимость обновлять модельки данных.
  • Вопрос задан
  • 3079 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Mobyman
@Mobyman
ilyaplot
@ilyaplot
PHP программист
Я использую CreateTable и простейший самописный конструктор php файла модели.
www.yiiframework.com/doc/guide/1.1/ru/database.query-builder#sec-5
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы