- 浏览: 106246 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
沉醉音乐的咖啡:
引用
Yii框架中ActiveRecord使用Relations -
stevecj:
呵呵,这个以后再交流。
盛大开始行动了,值得尊敬 -
庄表伟:
谢谢鼓励!我们会更加努力的。能聊聊你想做的另一个新产品是什么吗 ...
盛大开始行动了,值得尊敬
由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。
例如,Yii::app()->user;Yii::app()->params['name']
;等等。我们可以自行设定全局函数,使得代码看起来更加简洁易用。
我们可以保存在globals.php在protected目录下。然后,在入口脚本index.php的,我们包括在开始文件
require('path/to/globals.php'); require('path/to/yii.php');
现在我们可以在应用的任何地方使用我们的全局函数,例如可以使用user()代替Yii::app()->user。 注:如果你打算发布一个可重用的组件,请不要组件中使用全局函数,在不同的应用配置中,可能导致无法使用。 同时,也应注意与第三方库的冲突,可考虑对每个函数前加上自己的前缀,已做区分,例如框架核心均已C为前缀。
下面是代码包含最常用的一些快捷功能。
01
|
/**
|
02
|
* This is the shortcut to DIRECTORY_SEPARATOR
|
03
|
*/
|
04
|
defined(
'DS'
)
or
define(
'DS'
,DIRECTORY_SEPARATOR);
|
05
|
06
|
/**
|
07
|
* This is the shortcut to Yii::app()
|
08
|
*/
|
09
|
function
app()
|
10
|
{
|
11
|
return
Yii::app();
|
12
|
}
|
13
|
14
|
/**
|
15
|
* This is the shortcut to Yii::app()->clientScript
|
16
|
*/
|
17
|
function
cs()
|
18
|
{
|
19
|
// You could also call the client script instance via Yii::app()->clientScript
|
20
|
// But this is faster
|
21
|
return
Yii::app()->getClientScript();
|
22
|
}
|
23
|
24
|
/**
|
25
|
* This is the shortcut to Yii::app()->user.
|
26
|
*/
|
27
|
function
user()
|
28
|
{
|
29
|
return
Yii::app()->getUser();
|
30
|
}
|
31
|
32
|
/**
|
33
|
* This is the shortcut to Yii::app()->createUrl()
|
34
|
*/
|
35
|
function
url(
$route
,
$params
=
array
(),
$ampersand
=
'&'
)
|
36
|
{
|
37
|
return
Yii::app()->createUrl(
$route
,
$params
,
$ampersand
);
|
38
|
}
|
39
|
40
|
/**
|
41
|
* This is the shortcut to CHtml::encode
|
42
|
*/
|
43
|
function
h(
$text
)
|
44
|
{
|
45
|
return
htmlspecialchars(
$text
,ENT_QUOTES,Yii::app()->charset);
|
46
|
}
|
47
|
48
|
/**
|
49
|
* This is the shortcut to CHtml::link()
|
50
|
*/
|
51
|
function
l(
$text
,
$url
=
'#'
,
$htmlOptions
=
array
())
|
52
|
{
|
53
|
return
CHtml::link(
$text
,
$url
,
$htmlOptions
);
|
54
|
}
|
55
|
56
|
/**
|
57
|
* This is the shortcut to Yii::t() with default category = 'stay'
|
58
|
*/
|
59
|
function
t(
$message
,
$category
=
'stay'
,
$params
=
array
(),
$source
=null,
$language
=null)
|
60
|
{
|
61
|
return
Yii::t(
$category
,
$message
,
$params
,
$source
,
$language
);
|
62
|
}
|
63
|
64
|
/**
|
65
|
* This is the shortcut to Yii::app()->request->baseUrl
|
66
|
* If the parameter is given, it will be returned and prefixed with the app baseUrl.
|
67
|
*/
|
68
|
function
bu(
$url
=null)
|
69
|
{
|
70
|
static
$baseUrl
;
|
71
|
if
(
$baseUrl
===null)
|
72
|
$baseUrl
=Yii::app()->getRequest()->getBaseUrl();
|
73
|
return
$url
===null ?
$baseUrl
:
$baseUrl
.
'/'
.ltrim(
$url
,
'/'
);
|
74
|
}
|
75
|
76
|
/**
|
77
|
* Returns the named application parameter.
|
78
|
* This is the shortcut to Yii::app()->params[$name].
|
79
|
*/
|
80
|
function
param(
$name
)
|
81
|
{
|
82
|
return
Yii::app()->params[
$name
];
|
83
|
}
|
84
|
/**
|
85
|
* A useful one that I use in development is the following
|
86
|
* which dumps the target with syntax highlighting on by default
|
87
|
*/
|
88
|
function
dump(
$target
)
|
89
|
{
|
90
|
return
CVarDumper::dump(
$target
, 10, true) ;
|
91
|
}
|
发表评论
-
Yii CDBHttpSession数据库存储session性能优化实战
2011-09-14 20:11 932Yii CDBHttpSession数据库存储session性 ... -
YII CACHE使用示例
2011-08-29 21:58 3972从Boylee那抄过来的.链接中有boylee的博客地址. 我 ... -
Yii CDBHttpSession数据库存储session性能优化实战
2011-08-29 21:36 4251Yii CDBHttpSession数据库存储session性 ... -
通过扩展CWebUser添加信息到Yii:app()->user
2011-08-29 21:21 3553通过扩展CWebUser添加信息到Yii:app()-> ... -
通过扩展 CWebUser 增加信息到 Yii::app()->user
2011-05-25 11:16 7582通过扩展 CWebUser 增加信息到 Yii::app()- ... -
Gridview日期过滤列(filter date column for gridview in Yii framework)
2011-05-23 11:02 5100Gridview日期过滤列(filter da ... -
利用yii framework dropdown 创建级联菜单
2011-05-23 10:57 2414利用yii framework dropdown 创建级联菜单 ... -
如何开发Yii的中文网站
2011-05-23 10:50 5111如何开发Yii的中文网站 首先在配置文件main.php 中 ... -
Yii CGridView 详解(关键看关联表字段排序部分)
2011-05-23 10:47 6967Yii CGridView 详解(关键看关联表字段排序部分) ... -
总结一下隐藏index.php文件的步骤
2011-05-23 10:07 1580总结一下隐藏index.php文件的步骤 1.开启apache ... -
Yii Framework的CPagination用法详解
2011-05-22 17:52 3269Yii Framework的CPagination用法详解 c ... -
YII TIPS
2011-05-22 17:12 1449db组件 'schemaCachingDuration'=&g ... -
yii ajax分页
2011-05-22 16:24 1872我们有时候需要ajax读取数据,并进行分页。首先我们遇到的是如 ... -
yii中widget分页的用法
2011-05-22 16:15 4151yii中widget分页的用法 1首先contr ... -
Yii框架中ActiveRecord使用Relations
2011-05-21 06:55 2027Yii框架中ActiveRecord使用Relations ... -
转:关于yii的relations
2011-05-20 16:53 2604关于yii的relations . ... -
使用GD库生成验证码
2011-05-14 21:19 1185GD库在php 中的另一个重要的应用,是使用GD库生 ... -
smarty插件:在多少分钟前,多少小时前,多少天前。
2011-05-14 21:11 1290smarty插件:在多少分钟前,多少小时前,多少天前。 ... -
yii快速入门与参考
2011-05-04 09:17 5518yii快速入门与参考 ...
相关推荐
本文实例讲述了Yii全局函数用法。分享给大家供大家参考,具体如下: 由于YII致力于完美的整合第三方库,它并没有定义任何全局函数。yii中的每一个应用都需要全类别和对象范围。 例如,Yii::app()->user;Yii::app()->...
通过这些方法,开发者可以在YII2框架中灵活地定义和使用自定义全局函数,为开发工作提供便利。同时,合理利用YII2框架提供的各种特性,可以进一步提高开发效率和程序性能。如果想要深入学习YII2框架以及PHP开发的更...
以上只是Yii框架函数使用的一小部分,实际上Yii提供了大量功能强大的组件,如MVC架构、缓存管理、数据库操作、表单处理、安全认证等。学习和掌握Yii的函数用法,能极大地提升PHP开发效率。对于想要深入学习Yii的...
在Yii2框架中添加全局函数,推荐使用Composer自动加载的方式。这种方式不仅避免了修改入口文件带来的问题,而且利于项目的长期维护和扩展。只需在`composer.json`中添加一个路径,然后通过Composer管理全局函数,就...
通过全局函数`Yii::app()`,可以从框架中的任何位置访问当前的应用程序实例。 #### 四、扩展与定制 随着应用功能的增加和复杂性的提升,可能需要将应用程序进一步分割成多个子应用(子应用程序)。这不仅有助于...
它没有定义任何全局函数或变量。而且,它定义的类层次结构允许最大的可重用性和定制。 16、友好的使用第三方代码:Yii精心设计让它第三方代码非常好的工作。例如,你可以在你的Yii应用程序中使用PEAR或Zend ...
在布局方面,Yii支持布局文件(Layout),如`colum1.php`,用于定义全局的页面结构。通过`render()`方法,视图渲染会包含布局文件,而`renderPartial()`方法则只渲染视图本身,不包含布局。 综上所述,Yii框架凭借...
配置文件一般位于`protected/config/main.php`,用于设置应用的全局参数,如数据库连接、组件配置等。 2. **入口文件`index.php`流程** 这是应用的起始点,主要任务是加载Yii框架的引导文件,初始化环境,并实例...
- **其他特性**: 如自定义背景颜色、使用HTML内容、设置全局默认选项等。 5. **优化和扩展** 除了基本的用法,你还可以根据需求扩展这个小部件,比如添加更多预定义的提示类型,或者封装一些常用的操作,比如删除...
Yii 使用 PHP5 的 SPL(Standard PHP Library)中的 `spl_autoload_register()` 函数来实现类的自动加载。在 `YiiBase.php` 文件中,`YiiBase::autoload()` 静态方法被注册为自动加载处理器。当尝试实例化一个类或...
- **实现方式**:使用jQuery或Yii内置函数触发加载动画效果。 ##### 14. 为ActiveRecord添加命名范围 - **知识点**:了解如何为ActiveRecord模型增加命名范围。 - **实现方式**:通过重写模型类,添加自定义的...
11. **components**目录:自定义组件存放处,可以是全局的服务、行为或助手函数,提高代码复用性。 在实际开发中,Yii CMS还可能包含其他组件,如用户认证(User Authentication)、权限控制(Access Control)、...
在Yii框架中,所有的应用组件都被注册在一个全局的服务定位器中,通常使用\Yii::$app来访问。每个组件都拥有一个唯一的ID,这个ID用于区分不同的组件。例如,\Yii::$app->db用于访问数据库组件,\Yii::$app->cache...
- **页面缓存**:可全局缓存整个页面,或者根据路由、动作进行局部缓存。 4. **安全**: - **验证**:Yii提供了一系列内置的验证规则,用于表单数据的验证。 - **权限控制**:基于RBAC(Role-Based Access ...
该软件包提供了Yii 2依赖注入器容器,该容器能够自动解决嵌套的构造函数接口类型的依赖项。 要求 Yii 2.0.39.3+ PHP 7.0以上 安装 composer require bizley/deep-instantiate:^1.0 用法 直接-只需调用new \Bizley\...
在这个文件中,我们通常会看到Yii::createWebApplication()函数的调用,这个函数创建了一个Web应用程序实例,并加载了配置文件,使得全局的Yii对象可以通过Yii::app()访问。配置文件中的数据会被绑定到这个全局对象...