Warning at line 134

Trying to access array offset on value of type int

DAOCoreTrait.php
/home/butortip/public_html/vendor/phpmv/ubiquity/src/Ubiquity/orm/traits/DAOCoreTrait.php

<?php

namespace Ubiquity\orm\traits;

use Ubiquity\db\SqlUtils;
use Ubiquity\events\DAOEvents;
use Ubiquity\events\EventsManager;
use Ubiquity\orm\OrmUtils;
use Ubiquity\orm\parser\ConditionParser;
use Ubiquity\orm\parser\Reflexion;
use Ubiquity\db\Database;

/**
 * Core Trait for DAO class.
 * Ubiquity\orm\traits$DAOCoreTrait
 * This class is part of Ubiquity
 *
 * @author jcheron <myaddressmail@gmail.com>
 * @version 1.1.6
 *
 * @property array $db
 * @property boolean $useTransformers
 * @property string $transformerOp
 * @property array $modelsDatabase
 *
 */
trait DAOCoreTrait {
	protected static $accessors = [ ];
	protected static $fields = [ ];

	abstract public static function _affectsRelationObjects($className, $classPropKey, $manyToOneQueries, $oneToManyQueries, $manyToManyParsers, $objects, $included, $useCache): void;

	abstract protected static function prepareManyToMany($db, &$ret, $instance, $member, $annot = null);

	abstract protected static function prepareManyToOne(&$ret, $instance, $value, $fkField, $annotationArray);

	abstract protected static function prepareOneToMany(&$ret, $instance, $member, $annot = null);

	abstract public static function _initRelationFields($included, $metaDatas, &$invertedJoinColumns, &$oneToManyFields, &$manyToManyFields): void;

	abstract public static function _getIncludedForStep($included);

	abstract protected static function getDb($model);

	protected static function getClass_($instance) {
		if (\is_object ( $instance )) {
			return get_class ( $instance );
		}
		return $instance [0];
	}

	protected static function getInstance_($instance) {
		if (\is_object ( $instance )) {
			return $instance;
		}
		return $instance [0];
	}

	protected static function getValue_($instance, $member) {
		if (\is_object ( $instance )) {
			return Reflexion::getMemberValue ( $instance, $member );
		}
		return $instance [1];
	}

	protected static function getFirstKeyValue_($instance) {
		if (\is_object ( $instance )) {
			return OrmUtils::getFirstKeyValue ( $instance );
		}
		return $instance [1];
	}

	protected static function _getOne(Database $db, $className, ConditionParser $conditionParser, $included, $useCache) {
		$conditionParser->limitOne ();
		$included = self::_getIncludedForStep ( $included );
		$object = $invertedJoinColumns = $oneToManyFields = $manyToManyFields = null;

		$metaDatas = OrmUtils::getModelMetadata ( $className );
		$tableName = $metaDatas ['#tableName'];
		$hasIncluded = $included || (\is_array ( $included ) && \count ( $included ) > 0);
		if ($hasIncluded) {
			self::_initRelationFields ( $included, $metaDatas, $invertedJoinColumns, $oneToManyFields, $manyToManyFields );
		}
		$transformers = $metaDatas ['#transformers'] [self::$transformerOp] ?? [ ];
		$query = $db->prepareAndExecute ( $tableName, SqlUtils::checkWhere ( $conditionParser->getCondition () ), self::_getFieldList ( $tableName, $metaDatas ), $conditionParser->getParams (), $useCache, true );
		if ($query) {
			$oneToManyQueries =	$manyToOneQueries = $manyToManyParsers = [ ];
			$object = self::_loadObjectFromRow ( $db, $query, $className, $invertedJoinColumns, $manyToOneQueries, $oneToManyFields, $manyToManyFields, $oneToManyQueries, $manyToManyParsers, $metaDatas ['#memberNames'] ?? null, $metaDatas ['#accessors'], $transformers );
			if ($hasIncluded) {
				self::_affectsRelationObjects ( $className, OrmUtils::getFirstPropKey ( $className ), $manyToOneQueries, $oneToManyQueries, $manyToManyParsers, [ $object ], $included, $useCache );
			}
			EventsManager::trigger ( DAOEvents::GET_ONE, $object, $className );
		}
		return $object;
	}

	/**
	 *
	 * @param Database $db
	 * @param string $className
	 * @param ConditionParser $conditionParser
	 * @param boolean|array $included
	 * @param boolean|null $useCache
	 * @return array
	 */
	protected static function _getAll(Database $db, $className, ConditionParser $conditionParser, $included = true, $useCache = NULL) {
		$included = self::_getIncludedForStep ( $included );
		$objects = [];
		$invertedJoinColumns =$oneToManyFields = $manyToManyFields = null;

		$metaDatas = OrmUtils::getModelMetadata ( $className );
		$tableName = $metaDatas ['#tableName'];
		if ($hasIncluded = ($included || (\is_array ( $included ) && \count ( $included ) > 0))) {
			self::_initRelationFields ( $included, $metaDatas, $invertedJoinColumns, $oneToManyFields, $manyToManyFields );
		}
		$transformers = $metaDatas ['#transformers'] [self::$transformerOp] ?? [ ];
		$query = $db->prepareAndExecute ( $tableName, SqlUtils::checkWhere ( $conditionParser->getCondition () ), self::_getFieldList ( $tableName, $metaDatas ), $conditionParser->getParams (), $useCache );

		$oneToManyQueries = $manyToOneQueries = $manyToManyParsers = [ ];

		$propsKeys = OrmUtils::getPropKeys ( $className );
		foreach ( $query as $row ) {
			$object = self::_loadObjectFromRow ( $db, $row, $className, $invertedJoinColumns, $manyToOneQueries, $oneToManyFields, $manyToManyFields, $oneToManyQueries, $manyToManyParsers, $metaDatas ['#memberNames'] ?? null, $metaDatas ['#accessors'], $transformers );
			$objects [OrmUtils::getPropKeyValues ( $object, $propsKeys )] = $object;
		}
		if ($hasIncluded) {
			self::_affectsRelationObjects ( $className, OrmUtils::getFirstPropKey ( $className ), $manyToOneQueries, $oneToManyQueries, $manyToManyParsers, $objects, $included, $useCache );
		}
		EventsManager::trigger ( DAOEvents::GET_ALL, $objects, $className );
		return $objects;
	}

	public static function _getFieldList($tableName, $metaDatas) {
		return self::$fields [$tableName] ??= SqlUtils::getFieldList ( \array_diff ( $metaDatas ['#fieldNames'], $metaDatas ['#notSerializable'] ), $tableName );
	}

	/**
	 *
	 * @param Database $db
	 * @param array $row
	 * @param string $className
	 * @param array $invertedJoinColumns
	 * @param array $manyToOneQueries
	 * @param array $oneToManyFields
	 * @param array $manyToManyFields
	 * @param array $oneToManyQueries
	 * @param array $manyToManyParsers
	 * @param array $memberNames
	 * @param array $accessors
	 * @param array $transformers
	 * @return object
	 */
	public static function _loadObjectFromRow(Database $db, $row, $className, $invertedJoinColumns, &$manyToOneQueries, $oneToManyFields, $manyToManyFields, &$oneToManyQueries, &$manyToManyParsers, $memberNames, $accessors, $transformers) {
		$o = new $className ();
		if (self::$useTransformers) {
			self::applyTransformers ( $transformers, $row, $memberNames );
		}
		foreach ( $row as $k => $v ) {
			if ($accesseur = ($accessors [$k] ?? false)) {
				$o->$accesseur ( $v );
			}
			$o->_rest [$memberNames [$k] ?? $k] = $v;
			if (isset ( $invertedJoinColumns ) && isset ( $invertedJoinColumns [$k] )) {
				$fk = '_' . $k;
				$o->$fk = $v;
				self::prepareManyToOne ( $manyToOneQueries, $o, $v, $fk, $invertedJoinColumns [$k] );
			}
		}
		self::loadManys ( $o, $db, $oneToManyFields, $oneToManyQueries, $manyToManyFields, $manyToManyParsers );
		return $o;
	}

	/**
	 *
	 * @param Database $db
	 * @param array $row
	 * @param string $className
	 * @param array $memberNames
	 * @param array $transformers
	 * @return object
	 */
	public static function _loadSimpleObjectFromRow(Database $db, $row, $className, $memberNames, $transformers) {
		$o = new $className ();
		if (self::$useTransformers) {
			self::applyTransformers ( $transformers, $row, $memberNames );
		}
		foreach ( $row as $k => $v ) {
			$o->$k = $v;
			$o->_rest [$memberNames [$k] ?? $k] = $v;
		}
		return $o;
	}

	protected static function applyTransformers($transformers, &$row, $memberNames) {
		foreach ( $transformers as $member => $transformer ) {
			$field = \array_search ( $member, $memberNames );
			$transform = self::$transformerOp;
			$row [$field] = $transformer::{$transform} ( $row [$field] );
		}
	}

	protected static function loadManys($o, $db, $oneToManyFields, &$oneToManyQueries, $manyToManyFields, &$manyToManyParsers) {
		if (isset ( $oneToManyFields )) {
			foreach ( $oneToManyFields as $k => $annot ) {
				self::prepareOneToMany ( $oneToManyQueries, $o, $k, $annot );
			}
		}
		if (isset ( $manyToManyFields )) {
			foreach ( $manyToManyFields as $k => $annot ) {
				self::prepareManyToMany ( $db, $manyToManyParsers, $o, $k, $annot );
			}
		}
	}

	private static function parseKey(&$keyValues, $className, $quote) {
		if (! \is_array ( $keyValues )) {
			if (\strrpos ( $keyValues, '=' ) === false && \strrpos ( $keyValues, '>' ) === false && \strrpos ( $keyValues, '<' ) === false) {
				$keyValues = $quote . OrmUtils::getFirstKey ( $className ) . $quote . "='" . $keyValues . "'";
			}
		}
	}

	public static function storeDbCache(string $model) {
		$offset = self::$modelsDatabase [$model] ?? 'default';
		if (isset ( self::$db [$offset] )) {
			self::$db [$offset]->storeCache ();
		}
	}
	
	public static function getModels($dbOffset='default'){
		$result=[];
		foreach ( self::$modelsDatabase as $model=>$offset){
			if($offset===$dbOffset){
				$result[]=$model;
			}
		}
		return $result;
	}
}

Request 5

Name Value
controller
'controllers\\PublicProductdataController'
action
'product'
params

params 1

Name Value
0
'429'
method
'get'
url
'termek/429'

Request 5

Name Value
controller
'controllers\\PublicProductdataController'
action
'product'
params

params 1

Name Value
0
'429'
method
'get'
url
'termek/429'

Route 6

Name Value
controller
'controllers\\PublicProductdataController'
action
'product'
parameters

parameters 1

Name Value
0
'~0'
name
'publicProductdata.product'
cache
false
duration
0

Application 4

Name Value
cacheSystem
'Ubiquity\\cache\\system\\ArrayCache'
AnnotationsEngine
'Ubiquity\\attributes\\AttributesEngine'
applicationDir
'/home/butortip/public_html/public/..'
Ubiquity-version
'2.4.12'

Config 23

Name Value
siteUrl
'https://butortippek.hu/'
database

database 9

Name Value
type
'mysql'
dbName
'butortip_website'
serverName
'localhost'
port
3306
user
'butortip_dbuser'
password
'2N8Ap4vNj@'
optionsempty
cache
false
wrapper
'Ubiquity\\db\\providers\\pdo\\PDOWrapper'
sessionName
'butortippek'
namespacesempty
templateEngine
'Ubiquity\\views\\engine\\Twig'
templateEngineOptions

templateEngineOptions 2

Name Value
cache
false
debug
false
test
false
debug
false
logger
function (){
		//return new \Ubiquity\log\libraries\UMonolog(array (
  'host' => '127.0.0.1',
  'port' => 80,
  'sessionName' => 's6271340cb1148',
)['sessionName'], \Monolog\Logger::INFO);
		return new \Ubiquity\log\libraries\UMonolog(array (
			'host' => '',
			'port' => '',
			'sessionName' => 's6271340cb1148',
		)['sessionName'], \Monolog\Logger::INFO);
	}
di

di 1

Name Value
@exec

@exec 1

Name Value
jquery
function ($controller){
                    return \Ajax\php\ubiquity\JsUtils::diSemantic($controller);
                }
cache

cache 3

Name Value
directory
'cache/'
system
'Ubiquity\\cache\\system\\ArrayCache'
paramsempty
mvcNS

mvcNS 4

Name Value
models
'models'
controllers
'controllers'
rest
''
domains
'domains'
maxSelect
50
ajaxMaxSelect
30
dashboardEntryPoint
'/DashboardUserController'
productEmptyImage
'/assets/nest/imgs/shop/thumbnail-1.jpg'
captcha_site_key
'6Lc4PCojAAAAAI5yd_PAyPJdnV6IkSYMC4pL3gpW'
captcha_secret_key
'6Lc4PCojAAAAABJFLWsEj397h7uzRzlERz9xBx6I'
invisible_captcha_site_key
'6LcjDN0hAAAAAIwI89iD3YUMxBAja-UdoYi2W1eL'
invisible_captcha_secret_key
'6LcjDN0hAAAAAJSHBrVsixpMVhCMdPxo-h3OIIQE'
mailer

mailer 9

Name Value
SMTP_HOST
'mail.butortippek.hu'
SMTP_PORT
465
SMTP_METHOD
'ssl'
SMTP_USERNAME
'no-reply@butortippek.hu'
SMTP_PASSWORD
'HvZs$a7J!n'
OWNER_EMAIL
'info@butortippek.hu'
SYSTEM_FROM_EMAIL
'no-reply@butortippek.hu'
SYSTEM_NAME
'Bútortippek Website'
MAIL_TRANSPORT_METHOD
'SMTP'
EP

EP 1

Name Value
URL
'https://apiteszt.europroof.hu/'
onError
function ($code, $message = NULL, $controllerInstance = NULL){
				switch ($code) {
					case 404:
					case 500:
						throw new \Exception($message);
						break;
				}
			}

system 3

Name Value
php
'8.0.30'
os
'Linux tbeightynine.tarhely.eu 4.18.0-553.80.1.lve.el8.x86_64 #1 SMP Wed Oct 22 19:29:36 UTC 2025 x86_64'
extensions
'Core, date, libxml, openssl, pcre, zlib, filter, hash, json, pcntl, Reflection, SPL, session, standard, cgi-fcgi, bcmath, bz2, calendar, ctype, curl, dom, enchant, mbstring, fileinfo, ftp, gd, gettext, iconv, imap, intl, exif, mysqlnd, PDO, pgsql, Phar, posix, pspell, SimpleXML, soap, sockets, sodium, sqlite3, tidy, tokenizer, xml, xmlwriter, xsl, zip, mysqli, pdo_mysql, pdo_pgsql, pdo_sqlite, xmlreader, redis, i360, memcached, imagick, Zend OPcache'

_SESSION 2

Name Value
sellerPriceRoundLimits

sellerPriceRoundLimits 2

Name Value
22
''
27
'1'
Message

Message 4

Name Value
message
'Ez a kiskereskedői oldal nem elérhető.'
title
'Hiba!'
type
'error'
from
'wrongSubdomain'

_SESSION 2

Name Value
sellerPriceRoundLimits

sellerPriceRoundLimits 2

Name Value
22
''
27
'1'
Message

Message 4

Name Value
message
'Ez a kiskereskedői oldal nem elérhető.'
title
'Hiba!'
type
'error'
from
'wrongSubdomain'
empty

_GET 1

Name Value
c
'termek/429'

_REQUEST 1

Name Value
c
'termek/429'

_SERVER 75

Name Value
USER
'butortip'
HOME
'/home/butortip'
SCRIPT_NAME
'/public/index.php'
REQUEST_URI
'/termek/429'
QUERY_STRING
'c=termek/429'
REQUEST_METHOD
'GET'
SERVER_PROTOCOL
'HTTP/2.0'
GATEWAY_INTERFACE
'CGI/1.1'
REDIRECT_QUERY_STRING
'c=termek/429'
REDIRECT_URL
'/public/termek/429'
REMOTE_PORT
'27495'
SCRIPT_FILENAME
'/home/butortip/public_html/public/index.php'
SERVER_ADMIN
'webmaster@butortippek.hu'
CONTEXT_DOCUMENT_ROOT
'/home/butortip/public_html'
CONTEXT_PREFIX
''
REQUEST_SCHEME
'https'
DOCUMENT_ROOT
'/home/butortip/public_html'
REMOTE_ADDR
'216.73.216.157'
SERVER_PORT
'443'
SERVER_ADDR
'178.238.222.89'
SERVER_NAME
'mail.butortippek.hu'
SERVER_SOFTWARE
'Apache'
SERVER_SIGNATURE
''
PATH
'/usr/local/jdk/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin:/opt/bin'
HTTP_X_HTTPS
'1'
HTTP_HOST
'mail.butortippek.hu'
HTTP_ACCEPT_ENCODING
'gzip, br, zstd, deflate'
HTTP_COOKIE
'PHPSESSID=282dc9d80ef8e361f1cac6bd10a6f7c4'
HTTP_USER_AGENT
'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)'
HTTP_ACCEPT
'*/*'
proxy-nokeepalive
'1'
H2_STREAM_TAG
'720112-419-25'
H2_STREAM_ID
'25'
H2_PUSHED_ON
''
H2_PUSHED
''
H2_PUSH
'off'
H2PUSH
'off'
HTTP2
'on'
SSL_TLS_SNI
'mail.butortippek.hu'
HTTPS
'on'
SCRIPT_URI
'https://mail.butortippek.hu/termek/429'
SCRIPT_URL
'/termek/429'
UNIQUE_ID
'aeNv1p4qNS6YstwGZBgoXAABhwo'
REDIRECT_STATUS
'200'
REDIRECT_H2_STREAM_TAG
'720112-419-25'
REDIRECT_H2_STREAM_ID
'25'
REDIRECT_H2_PUSHED_ON
''
REDIRECT_H2_PUSHED
''
REDIRECT_H2_PUSH
'off'
REDIRECT_H2PUSH
'off'
REDIRECT_HTTP2
'on'
REDIRECT_SSL_TLS_SNI
'mail.butortippek.hu'
REDIRECT_HTTPS
'on'
REDIRECT_SCRIPT_URI
'https://mail.butortippek.hu/termek/429'
REDIRECT_SCRIPT_URL
'/termek/429'
REDIRECT_UNIQUE_ID
'aeNv1p4qNS6YstwGZBgoXAABhwo'
REDIRECT_REDIRECT_STATUS
'200'
REDIRECT_REDIRECT_H2_STREAM_TAG
'720112-419-25'
REDIRECT_REDIRECT_H2_STREAM_ID
'25'
REDIRECT_REDIRECT_H2_PUSHED_ON
''
REDIRECT_REDIRECT_H2_PUSHED
''
REDIRECT_REDIRECT_H2_PUSH
'off'
REDIRECT_REDIRECT_H2PUSH
'off'
REDIRECT_REDIRECT_HTTP2
'on'
REDIRECT_REDIRECT_SSL_TLS_SNI
'mail.butortippek.hu'
REDIRECT_REDIRECT_HTTPS
'on'
REDIRECT_REDIRECT_SCRIPT_URI
'https://mail.butortippek.hu/termek/429'
REDIRECT_REDIRECT_SCRIPT_URL
'/termek/429'
REDIRECT_REDIRECT_UNIQUE_ID
'aeNv1p4qNS6YstwGZBgoXAABhwo'
FCGI_ROLE
'RESPONDER'
PHP_SELF
'/public/index.php'
REQUEST_TIME_FLOAT
1776512982.6318919658660888671875
REQUEST_TIME
1776512982
argv

argv 1

Name Value
0
'c=termek/429'
argc
1
empty