Повторил полностью структуру, описанную в документации https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=4803&LESSON_PATH=3913.5062... , но все равно вылазит ошибка Fatal error: Class 'SomePartner\MyBooksCatalog\BookTable' not found . В чем может быть проблема? Пробовал подключать модуль перед вызовом класса \Bitrix\Main\Loader::includeModule('somepartner.mybookscatalog'), сам класс вызывал различными способами - избавиться от ошибки не удается. Что я упустил? Спасибо.
Есть сущность book файл /local/modules/somepartner.mybookscatalog/lib/book.php содержимое файла:
Код
<?
namespace SomePartner\MyBooksCatalog;
use Bitrix\Main\Entity;
class BookTable extends Entity\DataManager
{
public static function getTableName()
{
return 'my_book';
}
public static function getUfId()
{
return 'MY_BOOK';
}
public static function getMap()
{
return array(
new Entity\IntegerField('ID', array(
'primary' => true,
'autocomplete' => true
)),
new Entity\StringField('ISBN', array(
'required' => true,
'column_name' => 'ISBNCODE'
)),
new Entity\StringField('TITLE'),
new Entity\DateField('PUBLISH_DATE')
);
}
}
есть компонент, в котором пытаюсь обратиться к классу \SomePartner\MyBooksCatalog\Book::getEntity()->getFields(); ошибка: Fatal error: Class 'SomePartner\MyBooksCatalog\Book' not found Подскажите, пожалуйста, что я делаю не так?
такая же ошибка и не могу понять что не так include.php
Код
use Bitrix\Main\Loader;
use Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);
Loader::registerAutoLoadClasses(
'miza.obsee',
array(
"basa_miza" => "classes/general/basa.php",
)
);
classes/general/basa.php
Код
namespace Miza\Obsee;
//IncludeModuleLangFile(__FILE__);
use Bitrix\Main;
use Bitrix\Main\Localization\Loc;
Loc::loadMessages(__FILE__);
class basa_miza
{
function xxx($ee){ echo $ee;}
}
подключаю на станице
Код
use Bitrix\Main\Loader;
CModule::IncludeModule("miza.obsee");
//use Miza\Obsee;
//\Bitrix\Main\Loader::IncludeModule("miza.obsee");
//use Miza\Obsee;
basa_miza::xxx($_SERVER["DOCUMENT_ROOT"]);
все препробовал, а в ответ Fatal error: Class 'basa_miza' not found in в чем ошибка?
1. Установить модуль в админке 2. Подключить модуль \Bitrix\Main\Loader::IncludeModule("miza.obsee"); 3. Создать класс по пути /local/modules/miza.obsee/lib/basamiza.php
Код
namespace Miza\Obsee;
class BasaMiza
{
function xxx($ee){ echo $ee;}
}
4. Использовать класс
$class = new \Miza\Obsee\BasaMiza(); $class->xxx(1);
Не надо самому регистрировать классы, всё происходит автоматически, если соблюдать требуемые правила именования папок и названий файлов