Codeigniter или Yii: Соответствия функций и логики

Моя миграция с Codeigniter на Yii была долгой, болезненной и невынужденной.

То есть CI меня совершенно устраивал и устраивает, но частые упоминания о Yii разожгли во мне любопытство. А тут еще подвернулся рейтинг php-фреймворков на Хабре (где Yii занимал лидирующие позиции) и я решился.

Первые шаги в каждом аспекте построения сайта мне давались тяжело, как будто в первый раз. Мозг упрямо мыслил категориями CI-шика, но я все же кое-как выкарабкался.

Эту статью возможно будет интересно (а дай Бог еще и полезно) почитать тем, кто будет идти в том же направлении — мигрировать с Codeigniter на Yii. На первых порах очень не хватает привычных функция для… да для всего! И здесь я постараюсь привести решения обыденных задач в Codeigniter и их перевод на Yii. Поехали…

Codeigniter Задача Yii
const BASEPATH Путь к директории сайта Yii::app()->getBasePath();

YiiBase::getPathOfAlias(‘webroot’);

const APPPATH Путь к директории приложения YiiBase::getPathOfAlias(‘webroot’)
Пути
site_url(‘controller/method’);

site_url(‘css/style.css’);

url по сайту для файла или метода контроллера Yii::app()->createAbsoluteUrl(‘controller/method’);

Yii::app()->createAbsoluteUrl(‘css/style.css’);

base_url(); url корня сайта Yii::app()->request->getBaseUrl(true);
redirect(); Редирект Yii::app()->request->redirect();
Сессии
$this->session->set_userdata(‘name’,$data); Запись в сессию Yii::app()->session->add(‘name’,$data);
$this->session->userdata(‘name’); Получение из сессии Yii::app()->session->get(‘name’);
$this->session->unset_userdata(‘name’); Удаление из сессии Yii::app()->session->remove(‘name’);
Input
$this->input->get(‘name’); Получение из $_GET Yii::app()->request->getQuery(‘name’);
$this->input->post(‘name’); Получение из $_POST Yii::app()->request->getPost(‘name’);
$this->input->is_ajax_request(); Является ли запрос асинхронным Yii::app()->request->isAjaxRequest;
Вывод HTTP ошибок
show_error(‘message’, 403); Вывод ошибки 403 throw new CHttpException(403,’message’);
View
$this->load->view(‘blog’,$data); Загрузка view из контроллера $this->render(‘blog’,$data);
Load
$this->load->library(‘notify’,array(‘fadeTimeout’ => 3000)); Динамическая загрузка компонентов Yii::app()->setComponents(array(‘notify’ => array(
‘class’ => ‘ext.notify.notify’,
‘fadeTimeout’ => 3000
)));
Helpers
force_download($name,$data); // из download_helper.php Скачивание файла // метод CHttpRequest::sendFile()

Yii::app()->request->sendFile($name,$content);

Таблица будет пополняться по мере моего изучения Yii

Полезно(3)Бесполезно(1)

Добавить комментарий

2 Responses to “ Codeigniter или Yii: Соответствия функций и логики ”

  1. Денис

    Хорошая статья, но я никак не решаюсь перейти на Yii не вижу прям жестких аргументов для этого, то что не хватает в CI пишу сам. Даже судя по твоей стаье можно понять что у Yii конструкции тяжелее чем у CI. Хочу спросить у тебя, после перехода на Yii по CI не скучаешь?)) И есть ли смысл переходить на Yii, ведь CI легко справляется и с крупными порталами.

    Полезно(0)Бесполезно(0)
    • Городецкий

      Городецкий

      Добрый день,
      Я тоже аргументов так и не нашёл)
      Написал на Yii буквально два с половиной "домашних" проекта и забросил. Вернулся на CI тогда.
      На CI написал после этого еще несколько крупных коммерческих проектов и ни разу не жалел. Если душа не лежит к Yii, то не лежит)
      Один из последних проектов вообще делал на Slimframework + WordPress, вполне себе хорошо получилось, без насилия над собой.
      Ну и посматриваю в сторону Laravel, тоже вот никак не решусь что-нибудь сделать - то времени нет, то желания)

      Полезно(0)Бесполезно(0)