@rena-nip

Как подключить библиотеку phpMorphy в класс?

Работаю с библиотекой PhpMorhpy. К ней прилагается следующий пример инициализации:

require_once(dirname(__FILE__) . '/../src/common.php');

// set some options
$opts = array(
// storage type, follow types supported
// PHPMORPHY_STORAGE_FILE - use file operations(fread, fseek) for dictionary access, this is very slow...
// PHPMORPHY_STORAGE_SHM - load dictionary in shared memory(using shmop php extension), this is preferred mode
// PHPMORPHY_STORAGE_MEM - load dict to memory each time when phpMorphy intialized, this useful when shmop ext. not activated. Speed same as for PHPMORPHY_STORAGE_SHM type
'storage' => PHPMORPHY_STORAGE_FILE,
// Extend graminfo for getAllFormsWithGramInfo method call
'with_gramtab' => false,
// Enable prediction by suffix
'predict_by_suffix' => true, 
// Enable prediction by prefix
'predict_by_db' => true
);

// Path to directory where dictionaries located
$dir = dirname(__FILE__) . '/phpmorphy-0.3.7/dicts';

// Create descriptor for dictionary located in $dir directory with russian language
$dict_bundle = new phpMorphy_FilesBundle($dir, 'rus');

// Create phpMorphy instance
try {
$morphy = new phpMorphy($dict_bundle, $opts);
} catch(phpMorphy_Exception $e) {
die('Error occured while creating phpMorphy instance: ' . $e->getMessage());
}


Я пишу свой класс, который работает с PhpMorphy. Ранее данную инициализацию я проводила в начале каждой функции класса. Понимаю, что это не правильно, поэтому хочу оптимизировать работу кода. Как правильно инициализировать phpMorphy внутри класса?

Спасибо за помощь!
  • Вопрос задан
  • 650 просмотров
Пригласить эксперта
Ответы на вопрос 2
Я пишу свой класс, который работает с PhpMorphy.

Самый простой вариант - это создать атрибут, которое будет хранить экземпляр phpmorphy и в конструкторе класса провести инициализацию, после чего сохранить экземпляр phpmorphy в атрибут класса. Что-то типа
class MorphyWrapper
{
    private $morphy;
    public function __construct()
    {
         //код инициализации
         $this->morphy = $morphy;  
    }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы