php - 使用命名空间

时间:2017-09-12 14:37:36

标签: php namespaces

我想使用phpmailer的最小功能。这是我的文件夹结构:

webroot/
  - php/
     - mail.php
     - phpmailer/
         - PHPMailer.php

在我的mail.php中,我想使用命名空间:

<?php
use PHPMailer\PHPMailer;
$mail = new PHPMailer(true);
...

但我收到了错误:

  

致命错误:Class&#39; PHPMailer \ PHPMailer&#39;找不到   第2行/home/example/public_html/php/mail.php

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

  1. 创建include.php文件。

      $LibraryPath = "/webroot/php";
      set_include_path(get_include_path() . PATH_SEPARATOR . $LibraryPath);
    ?>
    
  2. *其中$ LibaryPath是包含phpmailer文件夹的php文件夹的路径

    1. 在您的PhpMailer.php中包含

          namespace phpmailer;
      
          class PHPMailer(){
          .....
          }
          ?>
      
    2. 在mail.php中包含require,这样你就可以实例化phpmailer \ PHPMailer

      require ('include.php');
      
      use phpmailer\PHPMailer;
      
    3. 你可以在php文件夹中添加更多类,你可以在#2。

      之后定义它们的命名空间

      您可以通过添加'include.php'并实例化该类来在新页面中调用它们。

答案 1 :(得分:0)

开始研究作曲家。 Composer将帮助您使用单个自动加载器。

Download: Composer

将作曲家放在php文件夹中。

查看THIS

或者把这个类放在php项目中。

你需要所有这些:

require_once('class.pop3.php');
require_once('class.phpmailer.php');
require_once('class.smtp.php');
require_once('PHPMailerAutoload.php');

PHPMailer Github link

答案 2 :(得分:0)

PhpMailer似乎不在命名空间中。

包括phpmailer / PHPMailerAutoload.php并使用\ PHPMailer:

<?php
require 'phpmailer/PHPMailerAutoload.php' ;
use \PHPMailer ;