在Yii中导入外部php文件
我有一些使用原始php(包括配置文件)的文件,用于服务器中的自动邮件 假设在这个文件中我定义了两个常量(define(…)和一个填充了数据库连接信息的数组,比如用户、主机等等) 该网站是使用Yii完成的,因此它还使用了一个配置文件 这些原始文件可以放在任何地方(受保护的内部、外部、与index.php处于同一级别,等等) 现在问题来了,我在Yii之外有一个不同的配置文件(以及数据库的不同用户/密码等等),但我也需要在Yii内部的某些地方使用它在Yii中导入外部php文件,php,yii,Php,Yii,我有一些使用原始php(包括配置文件)的文件,用于服务器中的自动邮件 假设在这个文件中我定义了两个常量(define(…)和一个填充了数据库连接信息的数组,比如用户、主机等等) 该网站是使用Yii完成的,因此它还使用了一个配置文件 这些原始文件可以放在任何地方(受保护的内部、外部、与index.php处于同一级别,等等) 现在问题来了,我在Yii之外有一个不同的配置文件(以及数据库的不同用户/密码等等),但我也需要在Yii内部的某些地方使用它 是否有明确的方法将这些文件导入控制器?我已经将它们放
是否有明确的方法将这些文件导入控制器?我已经将它们放在扩展中,但原始函数无法从中运行。最好的方法是查看是否可以将自定义代码放入类文件中,并将其放入components目录或类似目录中,然后将文件转换为类(如果还没有)这样你就可以在没有大量代码混合的情况下得到你的数据,这将是很难维持的。 < P>简单的方法是将文件放在扩展中,并将扩展路径添加到你的YII配置中。然后制作一个控制器并从其动作中调用方法。让我们考虑一个SWIFTMALLER的例子。这里是一个自定义C。你可以使用的遥控器
class mailerController extends Controller{
public function actions()
{
return array(
//can add other actions here
);
}
public function actionIndex(){
echo "use mailer?e=<email>&m=<message>&sub=<subject> to send mail from the site to the email address";
}
public static function actionSendMail($e,$m,$sub){
$content = $m ; // can use a template and then assign to content
$SM = new SwiftMailer(); //the external method, should be present in include path
// Get config
$mailHost = Yii::app()->params['mailhost'];
$mailPort = 25; // Optional
$Transport = $SM->smtpTransport($mailHost, $mailPort);
$Mailer = $SM->mailer($Transport);
$Message = $SM
->newMessage($sub)
->setFrom(Yii::app()->params['sitemail'])
->setTo($e)
->addPart($content, 'text/html');
return ( $Mailer->send($Message));
} }
类mailerController扩展控制器{
公共职能行动()
{
返回数组(
//您可以在此处添加其他操作
);
}
公共职能行动索引(){
echo“使用mailer?e=&m=&sub=将邮件从站点发送到电子邮件地址”;
}
公共静态函数actionSendMail($e,$m,$sub){
$content=$m;//可以使用模板,然后分配给内容
$SM=new SwiftMailer();//外部方法应存在于包含路径中
//获取配置
$mailHost=Yii::app()->params['mailHost'];
$mailPort=25;//可选
$Transport=$SM->smtpTransport($mailHost,$mailPort);
$Mailer=$SM->Mailer($Transport);
$Message=$SM
->新消息($sub)
->setFrom(Yii::app()->params['sitemail'])
->setTo($e)
->addPart($content,'text/html');
返回($Mailer->send($Message));
} }
一旦你的控制器准备好了,就可以像这样调用它
yoursite.com/mailer?e=<email>&m=<message>&sub=<subject>
yoursite.com/mailer?e=&m=&sub=
信息太少,无法继续。请给出最简单的具体示例来说明您的问题。好吧,没什么好说的,但我在第二段中添加了它