2015-10-28 3 views
0

Я пытаюсь вызвать класс из файла. Я использовал код ниже:Вызов класса из другого файла в PHP

<?php 
use Fieg\Bayes\Classifier; 
use Fieg\Bayes\Tokenizer\WhitespaceAndPunctuationTokenizer; 

$tokenizer = new WhitespaceAndPunctuationTokenizer(); 
$classifier = new Classifier($tokenizer); 

$classifier->train('en', 'This is english'); 
$classifier->train('fr', 'Je suis Hollandais'); 

$result = $classifier->classify('This is a naive bayes classifier'); 

Но это дает ошибку:

Fatal error: Class 'Fieg\Bayes\Tokenizer\WhitespaceAndPunctuationTokenizer' not found in C:\xampp\htdocs\Nayve\test.php on line 5 

Мое местоположение папки:

enter image description here

И мой код в WhitespaceAndPunctuationTokenizer классе:

<?php 

/* 
* @author Jeroen Fiege <[email protected]> 
* @copyright Webcreate (http://webcreate.nl) 
*/ 

namespace Fieg\Bayes\Tokenizer; 

use Fieg\Bayes\TokenizerInterface; 

class WhitespaceAndPunctuationTokenizer implements TokenizerInterface 
{ 
    protected $pattern = "/[ ,.?!-:;\\n\\r\\t…_]/u"; 

    public function tokenize($string) 
    { 
     $retval = preg_split($this->pattern, mb_strtolower($string, 'utf8')); 
     $retval = array_filter($retval, 'trim'); 
     $retval = array_values($retval); 

     return $retval; 
    } 
} 
+0

Вы включили классы в текущий скрипт php? – jmattheis

+0

Вы используете 'use Fieg \ Bayes \ Tokenizer \ WhitespaceAndPunctuationTokenizer;', но определили ли это в пространстве имен Nayve \ Fieg \ Bayes \ Tokenizer; '. Есть ли другой код, который вы нам не предоставили, или используете неправильное пространство имен. –

ответ

0

определить, включают путь, чтобы PHP можно найти ..

set_include_path(get_include_path() . PATH_SEPARATOR . 'path/to/classes'); 
0

попробовать следующее:

use Fieg\Bayes\Tokenizer\WhitespaceAndPunctuationTokenizer as WhitespaceTokenizer; 

, а затем использовать это, чтобы создать свой объект:

$tokenizer = new WhitespaceTokenizer(); 
0

Это выглядит вы используете composer, поэтому, если вы загружаете файл напрямую, вам нужно включить файл автозагрузки загрузчика композитора.

<?php 
require __DIR__ . '/vendor/autoload.php'; 

// All your code goes here 

Если у вас нет папки поставщика или не установили вашу конфигурацию composer.json, то вам необходимо убедиться, что ваш файл composer.json содержит:

{ 
    "autoload": { 
     "psr-4": {"Fieg\\Bayes\\": "Fieg/Bayes/"} 
    } 
} 

А затем запустить композитор установки для настройки ваших автозагрузкой файлы:

$ composer install 

Ссылка: https://getcomposer.org/doc/01-basic-usage.md#autoloading

Смежные вопросы