внешние классы и файлы PHP в Laravel - класс не найден - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть два php-файла, и я уже создал папку с именем «ExternalClasses» и добавил файл в эту папку.В моем php-файле я добавляю эту строку:

namespace App\ExternalClasses;

, а в своем контроллере я добавляю эту строку:

use App\ExternalClasses\CCheckMail;

, и вот как я ее использую:

$pricesClass = new CCheckMail(); 
$email2 = ['myemail@gmail.com']; 
$prices = $pricesClass->execute ($email2); 
return view('pages.home', compact('prices'));

но выдает ошибку:

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR) Класс 'App \ ExternalClasses \ CCheckMail' не найден

Вот мой php-файл (CCheckMail.php): -

<?php 
namespace App\ExternalClasses;
/*
*   This script was writed by Setec Astronomy - setec@freemail.it
*
*   This script is distributed  under the GPL License
*
*   This program is distributed in the hope that it will be useful,
*   but WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*   GNU General Public License for more details.
*
*   http://www.gnu.org/licenses/gpl.txt
*
*/
define ('DEBUG_OK', false);
class CCheckMail
{
    var $timeout = 10;
    var $domain_rules = array ("aol.com", "bigfoot.com", "brain.net.pk", "breathemail.net",
                               "compuserve.com", "dialnet.co.uk", "glocksoft.com", "home.com",
                               "msn.com", "rocketmail.com", "uu.net", "yahoo.com", "yahoo.de");

    function _is_valid_email ($email = "") 
    { return preg_match('/^[.\w-]+@([\w-]+\.)+[a-zA-Z]{2,6}$/', $email); }  

    function _check_domain_rules ($domain = "")
    { return in_array (strtolower ($domain), $this->domain_rules); }

    function execute ($email = "")
    {
        if (!$this->_is_valid_email ($email))
        { return false; }

        $host = substr (strstr ($email, '@'), 1);

        if ($this->_check_domain_rules ($host))
        { return false; }

        $host .= ".";

        if (getmxrr ($host, $mxhosts[0],  $mxhosts[1]) == true) 
        { array_multisort ($mxhosts[1],  $mxhosts[0]); }
        else
        {
            $mxhosts[0] = $host;
            $mxhosts[1] = 10;
        } 
        if (DEBUG_OK) { print_r ($mxhosts); }

        $port = 25;
        $localhost = $_SERVER['HTTP_HOST'];
        $sender = 'info@' . $localhost;

        $result = false;
        $id = 0;
        while (!$result && $id < count ($mxhosts[0]))
        {
            if (function_exists ("fsockopen"))
            {
                if (DEBUG_OK) { print_r ($id . " " . $mxhosts[0][$id]); }
                if ($connection = fsockopen ($mxhosts[0][$id], $port, $errno, $error, $this->timeout))
                {
                    fputs ($connection,"HELO $localhost\r\n"); // 250
                    $data = fgets ($connection,1024);
                    $response = substr ($data,0,1);
                    if (DEBUG_OK) { print_r ($data); }

                    if ($response == '2') // 200, 250 etc.
                    { 
                        fputs ($connection,"MAIL FROM:<$sender>\r\n");
                        $data = fgets($connection,1024);
                        $response = substr ($data,0,1);
                        if (DEBUG_OK) { print_r ($data); }

                        if ($response == '2') // 200, 250 etc.
                        { 
                            fputs ($connection,"RCPT TO:<$email>\r\n");
                            $data = fgets($connection,1024);
                            $response = substr ($data,0,1);
                            if (DEBUG_OK) { print_r ($data); }

                            if ($response == '2') // 200, 250 etc.
                            { 
                                fputs ($connection,"data\r\n");
                                $data = fgets($connection,1024);
                                $response = substr ($data,0,1);
                                if (DEBUG_OK) { print_r ($data); }

                                if ($response == '2') // 200, 250 etc.
                                { $result = true; }
                            }
                        }
                    }

                    fputs ($connection,"QUIT\r\n"); 
                    fclose ($connection);
                    if ($result) { return true; }
                }
            }
            else
            { break; } 
            $id++;
        }  
        return false;
    }
}
?>

Второй php-файл:

<?php 
/*
*   This script was writed by Setec Astronomy - setec@freemail.it
*
*   On row 41 of CCheckMail.php substitute the following line
*
*   if (getmxrr ($host, $mxhosts[0],  $mxhosts[1]) == true) 
*
*   with
*
*   if (getmxrr_portable ($host, $mxhosts[0],  $mxhosts[1]) == true) 
*
*   to have a fully working portable (*nix and Windows) CCheckMail class
*
*   This script is distributed  under the GPL License
*
*   This program is distributed in the hope that it will be useful,
*   but WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*   GNU General Public License for more details.
*
*   http://www.gnu.org/licenses/gpl.txt
*
*/
function getmxrr_win ($hostname = "", &$mxhosts, &$weight)
{
 $weight = array();
 $mxhosts = array();
 $result = false;


 $command = "nslookup -type=mx " . escapeshellarg ($hostname);
 exec ($command, $result);
 $i = 0;
 while (list ($key, $value) = each ($result)) 
 {
    if (strstr ($value, "mail exchanger")) 
    { $nslookup[$i] = $value; $i++; }
 }

 while (list ($key, $value) = each ($nslookup)) 
 {
    $temp = explode ( " ", $value );
    $mx[$key][0] = substr($temp[3],0,-1);
    $mx[$key][1] = $temp[7];
    $mx[$key][2] = gethostbyname ( $temp[7] );
 }

 array_multisort ($mx);

 foreach ($mx as $value) 
 { 
  $mxhosts[] = $value[1];
  $weight[] = $value[0];
 } 

 $result = count ($mxhosts) > 0;
 return $result;
}

function getmxrr_portable ($hostname = "", &$mxhosts, &$weight)
{
 if (function_exists ("getmxrr"))
 { $result = getmxrr ($hostname, $mxhosts, $weight); }
 else
 { $result = getmxrr_win ($hostname, $mxhosts, $weight); }
 return $result; 
}
?>

enter image description here

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Это была ошибка ввода, я создал новый проект и переделал кодирование, и оно работает нормально.

0 голосов
/ 20 сентября 2018

Просто наберите composer dumpautoload -o в своем терминале.

...