【问题标题】:Importing external php files in Yii在 Yii 中导入外部 php 文件
【发布时间】:2011-07-25 09:34:15
【问题描述】:

我有一些使用原始 php 的文件(包括配置文件),用于在我的服务器中自动发送邮件。

假设我在这个文件中定义了几个常量(define(...))和一个填充了数据库连接信息的数组,比如用户、主机等)。

该网站是使用 Yii 完成的,所以它也使用了一个配置文件。

这些原始文件可以放在任何地方(在受保护的内部、外部、与 index.php 的同一级别,等等)。

现在问题来了,我在 Yii 之外有一个不同的配置文件(以及不同的数据库用户/密码等),但我也需要在 Yii 内部的某些地方使用它。

有没有一种明确的方法可以将这些文件导入控制器?我已经将它们放在扩展中,但原始函数无法从那里工作。

【问题讨论】:

  • 信息太少,无法继续。发布最简单的具体示例来说明您的问题。
  • 嗯,话不多说,我把它作为第二段添加了

标签: php yii


【解决方案1】:

最好的方法是查看您是否可以将自定义代码放入类文件中,然后将它们放入组件目录或类似目录中,然后将您的文件转换为类(如果还没有的话)。这样您就可以获取数据,而无需大量混合难以维护的代码。

【讨论】:

    【解决方案2】:

    简单的方法是将文件放在扩展名中,并将扩展名的路径添加到您的 yii 配置中。然后制作一个控制器并从其操作中调用方法。让我们考虑一个 swiftmailer 的例子。这是您可以使用的自定义控制器。

    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));
        } }
    

    一旦你的控制器准备好了,就可以像这样调用它

    yoursite.com/mailer?e=<email>&m=<message>&sub=<subject>
    

    【讨论】:

      猜你喜欢
      • 2015-08-26
      • 1970-01-01
      • 2011-05-24
      • 2013-11-03
      • 2014-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      相关资源
      最近更新 更多