DbHelp.ru
Маленький Yii блог
Комментарии
Гость: cbd lotion cbd cream | cbd oil dogs | what does cbd oil do cbd cream
Гость: cbd dog treats cbd oil for dogs | where to buy cbd cream | cbd oil indiana christian book distributo...
Гость: acai berry wЕ‚aЕ›ciwoЕ›ci saroten 25 absturzsicherung gelГ¤nder vorschriften calciumgluconat gel nag...
Гость: real money casino hallmark casino online | casino games no download no registration | casinos near m...
Гость: free slot play vegas slots online | da vinci diamonds free online slots | hollywood casino free slot...



Сервер Ultima Online - Forest Wars (от создателя данного блога)

Используем функции быстрого доступа (глобальные функции в Yii)

Рубрика: Перевод Cookbook

Оцените эту статью:

Рейтинг: 0.00 (0)
23 июля. 2009
Опубликовать в Twitter Написать в Facebook Опубликовать в своем блоге livejournal.com

Yii Framework Blog img http://dbhelp.rucookbook С целью легкого интегрирование фреймворка со сторонними библиотеками, разработчики Yii не используют в коде глобальных функций. В Yii все необходимо решать при помощи полного названия класса или диапазона обьектов.

---

Например, чтобы получить доступ к данным текущего пользователя, мы должны использовать Yii::app()->user. Что бы обратиться к параметрам нашего приложения, мы должны использовать Yii::app()->params[название] и так далее.

Хотя всевозможные редакторы кода (IDE) могут немного облегчить печать этих длинных имен, лучшим вариантов будет использовать глобальные функции...

Мы можем хранить наши глобальные функции быстрого доступа в файле globals.php. Теперь что бы эти функции были доступны внутри приложения, откроем файл index.php и добавим в его начало:

require('path/to/globals.php');
require('path/to/yii.php');
......

Теперь вы можете использовать ваши глобальные функции в любом месте вашего приложения. Например, что бы получить доступ к данным пользователя мы можем использовать user() вместо Yii::app()->user

Примечание: Не используйте функции быстрого доступа в ваших компонентах, если вы собираетесь в дальнейшем использовать их в разных приложениях (или распространять). Это сделает ваши компоненты не пригодными если функции быстрого доступа не будут определены в других приложениях. Также обратите внимание что ваши глобальные функции могут быть причиной конфликта при использовании сторонних библиотек. Поэтому постарайтесь для глобальных функций использовать не сильно распространенные имена (прим. переводчика)

Ниже приведен код, содержащий список наиболее используемых функций быстрого доступа. Вы можете настроить их под свой вкус!

defined('DS') or define('DS',DIRECTORY_SEPARATOR);
 
/**
 * Быстрый доступ к Yii::app()
 */
function app()
{
    return Yii::app();
}
 
/**
 * Быстрый доступ к Yii::app()->clientScript
 */
function cs()
{
    return Yii::app()->clientScript;
}
 
/**
 * Быстрый доступ к Yii::app()->createUrl()
 */
function url($route,$params=array(),$ampersand='&')
{
    return Yii::app()->createUrl($route,$params,$ampersand);
}
 
/**
 * Быстрый доступ к CHtml::encode
 */
function h($text)
{
    return htmlspecialchars($text,ENT_QUOTES,Yii::app()->charset);
}
 
/**
 * Быстрый доступ к CHtml::link()
 */
function l($text, $url = '#', $htmlOptions = array())
{
    return CHtml::link($text, $url, $htmlOptions);
}
 
/**
 * Быстрый доступ к Yii::t(). По умолчанию, используется категория 'stay'
 */
function t($message, $category = 'stay', $params = array(), $source = null, $language = null)
{
    return Yii::t($category, $message, $params, $source, $language);
}
 
/**
 * Быстрый доступ к  Yii::app()->request->baseUrl
 * Если вы используете параметр $url - он будет добавлен как префикс к baseUrl.
 */
function bu($url=null)
{
    static $baseUrl;
    if ($baseUrl===null)
        $baseUrl=Yii::app()->request->baseUrl;
    return $url===null ? $baseUrl : $baseUrl.'/'.ltrim($url,'/');
}
 
/**
 * Быстрый доступ к Yii::app()->params[$name].
 */
function param($name)
{
    return Yii::app()->params[$name];
}
 
/**
 * Быстрый доступ к Yii::app()->user.
 */
function user()
{
    return Yii::app()->user;
}



Если хотите опубликовать этот материал у себя - пожалуйста, разместите ссылку на страницу откуда вы его взяли.
Другие yii статьи:

  1. Просматривая сегодня официальный форум фреймворка столкнулся с новой, но достаточно интересной темой. next Пользователь whoopass в теме "Where to start witch Yii"  ... "С чего начать изучать Yii?"

  2. Так получилось что xampp на компе умер. Куча файлов удалилась и только благодаря рестору файлов получилось получить папку "data" ... "Чем открыть файлы frm/MYD/MYI"

  3. Всем привет! Меня зовут Тимур и это мой небольшой Блог. Я очень рад что в интернете все больше находится ... "Hello World! Hello Yii.."

andy_s

Было сказано: Четверг, 23 Июль 2009

В духе иии можно было бы сделать класс - набор статических функций.

Получилось бы не так уж и длинно:
Y::user().

Но лично меня Yii::app()->user не очень напрягает. Сразу видно, что это за user (пользователь приложения Yii), да и переносимость не пострадает.

[adm] zolter

Было сказано: Четверг, 23 Июль 2009

Если делать класс - то это менять шило на мыло :)

nagash

Было сказано: Среда, 09 Сентябрь 2009

тогда мы теряем возможности для ide автозаполнения кода.

[guest] Гость

Было сказано: Понедельник, 28 Сентябрь 2009

@nagash: это для каких это ide вы теряете автозаполнение? если правильно написать документацию к глобальным функциям, то всё будет работать как часы, приучайте себя к написанию документации в процессе

[guest] Ghost123

Было сказано: Вторник, 29 Декабрь 2009

Подскажите пожалуйста новичку. Вот Yii::app()->user это означает, что мы обращаемся к какому-то классу? и где он определяться должен ? Второй вопрос: у меня Yii::app()->request->baseUrl ничего не возвращает, то есть пустая строка в результате, хотя должен быть http://localhost как я понимаю. может урл должен быть в конфиге прописан ?

[guest] Гость

Было сказано: Четверг, 08 Март 2018

payday loans st louis <a href="http://installmentloans.bid">installment loans</a> installment loans <a href=http://installmentloans.bid>installment loans</a>

[guest] Гость

Было сказано: Среда, 14 Март 2018

guest test post
<a href=" http://temresults2018.com/ ">bbcode</a>
<a href="http://temresults2018.com/">html</a>
http://temresults2018.com/ simple

[guest] Гость

Было сказано: Пятница, 31 Август 2018

Some text genoffice@2short.us
<a href="mailto:genoffice@2short.us">genoffice@2short.us</a> [email]genoffice@2short.us[/emai]

[guest] Гость

Было сказано: Пятница, 19 Октябрь 2018

poor credit loans guaranteed approval <a href="https://creditloansguaranteedapproval.com/">bad credit loans direct lenders</a> credit loans guaranteed approval <a href=https://creditloansguaranteedapproval.com/>bad credit loans direct lenders</a>

Оставить комментарий


Код:
Имя: