envoyln
(Quxianping)
1
我现在自己写了一个CSmarty类的init()作为对smarty类的初始化。
并在main.php中设置了这个smarty的组件
'components'=>array(
'smarty'=>array(
'class'=>'libs.extensions.smarty.CSmarty',
),…
现在我在action中可以这样调用$smaty=Yii::app()->smarty;
请问它是调用了自动加载的方法吗?如果有自动加载的话是website全局性的加载还是一个controller内部的加载?麻烦指教,多谢!
我现在觉得每一次都要用Yii::app()->smarty很麻烦,是否可以把它在哪里配置一下,赋给$smarty,然后直接使用$smarty这样的简洁变量?
delphiss
(Delphiss)
2
在 controller 的 init 里给this赋一个不行么?
envoyln
(Quxianping)
3
Quote
在 controller 的 init 里给this赋一个不行么?
十分感谢!恩,这样可以!
那还想问下,如何进行全局的自动加载呢?比如我要实现单点登录,需要一个全局的自动加载?
qiang
(Qiang Xue)
4
是自动加载的。在你第一次用它的时候加载。
你可以在index.php里写一个全局函数:
<?php
function smarty() { return Yii::app()->smarty; }
然后就可以在任何地方使用用smarty()了。
envoyln
(Quxianping)
5
Quote
是自动加载的。在你第一次用它的时候加载。
你可以在index.php里写一个全局函数:
<?php
function smarty() { return Yii::app()->smarty; }
然后就可以在任何地方使用用smarty()了。
恩,多谢,不过又遇到了一个问题,我现在用一个单点登录的,phpCAS这个,
假如把它放在index.php里的话会产生session_start()的问题:
“A session had already been started - ignoring session_start()”
Yii和phpCAS都用到了这个,但是这个好像不能使用两次的吧。
请问这个问题怎么解决呢?请问是要改一下源代码还是配置一下php什么的?
这个我放到controller里面倒是没什么问题。
qiang
(Qiang Xue)
6
我不清楚phpCAS。完整的错误信息是怎样的?
你可以试试在app config里配置session的autoStart=false。