我正在编写一个typo 3插件,需要访问一个可配置的MySQL / MariaDB数据库服务器上的预定义结构的数据库表。
<?php
namespace Homeinfo\SysMon2\Domain\Model;
use TYPO3\CMS\Extbase\DomainObject\AbstractEntity;
class CheckResults extends AbstractEntity
{
/**
* @var int $id
*/
public $id;
/**
* @var DateTime $timestamp
*/
public $timestamp;
/**
* @var int $system
*/
public $system;
/**
* @var bool $icmp_request
*/
public $icmp_request;
/**
* @var string $ssh_login
*/
public $ssh_login ;
/**
* @var string $http_request
*/
public $http_request;
/**
* @var string $application_state
*/
public $application_state;
/**
* @var string $smart_check
*/
public $smart_check;
/**
* @var string $baytrail_freeze
*/
public $baytrail_freeze;
/**
* @var string $fsck_repair
*/
public $fsck_repair;
/**
* @var bool $application_version
*/
public $application_version;
/**
* @var int $ram_total
*/
public $ram_total;
/**
* @var int $ram_free
*/
public $ram_free;
/**
* @var int $ram_available
*/
public $ram_available;
/**
* @var string $efi_mount_ok
*/
public $efi_mount_ok;
/**
* @var int $download
*/
public $download;
/**
* @var int $upload
*/
public $upload;
/**
* @var string $root_not_ro
*/
public $root_not_ro;
/**
* @var string $sensors
*/
public $sensors;
/**
* @var bool $in_sync
*/
public $in_sync;
/**
* @var int $recent_touch_events
*/
public $recent_touch_events;
/**
* @var DateTime $offline_since
*/
public $offline_since;
/**
* @var DateTime $blackscreen_since
*/
public $blackscreen_since;
}
当然,这并不能像现在这样工作,因为Typo 3假设模型表示 local typo 3数据库中由ext_tables.{php,sql}
定义的表,但是我希望typo 3从另一个可配置的数据库服务器使用这个模型,该服务器由
- 主机名
- 港口
- 用户名
- 密码
我该如何着手呢?我希望使用尽可能多的高级抽象,而不希望使用mysqli
或类似的方法编写裸SQL查询。
1条答案
按热度按时间ttygqcqt1#
您可以将多个数据库附加到TYPO3,并为应使用此特殊新数据库的表建立Map,https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/Configuration/Typo3ConfVars/DB.html#tablemapping有关您的特定版本(但此处提到的示例),请参阅www.example.com
应该会让您有一个很好的了解。根据您的用例,它可能有助于
1.对该数据库具有只读SQL访问权限,以便破坏性数据库比较不会使外部系统失效。
1.或者有一些额外的TYPO3友好的字段(例如uid,pid),帮助实现你想要的。