Cake\Http\ServerRequestFactory::marshalUriFromSapi() - CORE/src/Http/ServerRequestFactory.php, line 254
Cake\Http\ServerRequestFactory::createUri() - CORE/src/Http/ServerRequestFactory.php, line 220
Cake\Http\ServerRequestFactory::fromGlobals() - CORE/src/Http/ServerRequestFactory.php, line 64
Cake\Http\Server::run() - CORE/src/Http/Server.php, line 81
[main] - ROOT/webroot/index.php, line 40
Deprecated (8192): Creation of dynamic property Laminas\Diactoros\Uri::$webroot is deprecated [CORE/src/Http/ServerRequestFactory.php, line 256]
Cake\Http\ServerRequestFactory::marshalUriFromSapi() - CORE/src/Http/ServerRequestFactory.php, line 256
Cake\Http\ServerRequestFactory::createUri() - CORE/src/Http/ServerRequestFactory.php, line 220
Cake\Http\ServerRequestFactory::fromGlobals() - CORE/src/Http/ServerRequestFactory.php, line 64
Cake\Http\Server::run() - CORE/src/Http/Server.php, line 81
[main] - ROOT/webroot/index.php, line 40
Deprecated (8192): Creation of dynamic property App\Controller\PartsController::$RequestHandler is deprecated [CORE/src/Controller/Controller.php, line 354]
Cake\Controller\Controller::__set() - CORE/src/Controller/Controller.php, line 354
Cake\Controller\Controller::loadComponent() - CORE/src/Controller/Controller.php, line 288
App\Controller\AppController::initialize() - APP/Controller/AppController.php, line 46
Cake\Controller\Controller::__construct() - CORE/src/Controller/Controller.php, line 213
ReflectionClass::newInstance() - [internal], line ??
Cake\Controller\ControllerFactory::create() - CORE/src/Controller/ControllerFactory.php, line 79
Cake\Http\BaseApplication::handle() - CORE/src/Http/BaseApplication.php, line 311
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 77
Cake\Http\Middleware\CsrfProtectionMiddleware::process() - CORE/src/Http/Middleware/CsrfProtectionMiddleware.php, line 146
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Http\Middleware\BodyParserMiddleware::process() - CORE/src/Http/Middleware/BodyParserMiddleware.php, line 159
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Routing\Middleware\RoutingMiddleware::process() - CORE/src/Routing/Middleware/RoutingMiddleware.php, line 161
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Routing\Middleware\AssetMiddleware::process() - CORE/src/Routing/Middleware/AssetMiddleware.php, line 68
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Error\Middleware\ErrorHandlerMiddleware::process() - CORE/src/Error/Middleware/ErrorHandlerMiddleware.php, line 121
Deprecated (8192): Creation of dynamic property App\Controller\PartsController::$Flash is deprecated [CORE/src/Controller/Controller.php, line 354]
Cake\Controller\Controller::__set() - CORE/src/Controller/Controller.php, line 354
Cake\Controller\Controller::loadComponent() - CORE/src/Controller/Controller.php, line 288
App\Controller\AppController::initialize() - APP/Controller/AppController.php, line 47
Cake\Controller\Controller::__construct() - CORE/src/Controller/Controller.php, line 213
ReflectionClass::newInstance() - [internal], line ??
Cake\Controller\ControllerFactory::create() - CORE/src/Controller/ControllerFactory.php, line 79
Cake\Http\BaseApplication::handle() - CORE/src/Http/BaseApplication.php, line 311
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 77
Cake\Http\Middleware\CsrfProtectionMiddleware::process() - CORE/src/Http/Middleware/CsrfProtectionMiddleware.php, line 146
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Http\Middleware\BodyParserMiddleware::process() - CORE/src/Http/Middleware/BodyParserMiddleware.php, line 159
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Routing\Middleware\RoutingMiddleware::process() - CORE/src/Routing/Middleware/RoutingMiddleware.php, line 161
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Routing\Middleware\AssetMiddleware::process() - CORE/src/Routing/Middleware/AssetMiddleware.php, line 68
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Error\Middleware\ErrorHandlerMiddleware::process() - CORE/src/Error/Middleware/ErrorHandlerMiddleware.php, line 121
Deprecated (8192): Return type of Cake\Database\Query::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/Database/Query.php, line 1900]
<?php class Query implements ExpressionInterface, IteratorAggregate
<?php {
include - CORE/src/Database/Query.php, line 39
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
include - CORE/src/ORM/Query.php, line 80
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
Cake\ORM\AssociationCollection::load() - CORE/src/ORM/AssociationCollection.php, line 92
Cake\ORM\Table::hasMany() - CORE/src/ORM/Table.php, line 1145
App\Model\Table\PartsTable::initialize() - APP/Model/Table/PartsTable.php, line 11
Cake\ORM\Table::__construct() - CORE/src/ORM/Table.php, line 322
Cake\ORM\Locator\TableLocator::_create() - CORE/src/ORM/Locator/TableLocator.php, line 309
Cake\ORM\Locator\TableLocator::createInstance() - CORE/src/ORM/Locator/TableLocator.php, line 264
Cake\Datasource\Locator\AbstractLocator::get() - CORE/src/Datasource/Locator/AbstractLocator.php, line 62
Cake\ORM\Locator\TableLocator::get() - CORE/src/ORM/Locator/TableLocator.php, line 205
Cake\Controller\Controller::loadModel() - CORE/src/Datasource/ModelAwareTrait.php, line 124
Cake\Controller\Controller::__get() - CORE/src/Controller/Controller.php, line 307
App\Controller\PartsController::view() - APP/Controller/PartsController.php, line 19
Deprecated (8192): Creation of dynamic property App\Controller\PartsController::$Parts is deprecated [CORE/src/Controller/Controller.php, line 354]
Cake\Controller\Controller::__set() - CORE/src/Controller/Controller.php, line 354
Cake\Controller\Controller::loadModel() - CORE/src/Datasource/ModelAwareTrait.php, line 124
Cake\Controller\Controller::__get() - CORE/src/Controller/Controller.php, line 307
App\Controller\PartsController::view() - APP/Controller/PartsController.php, line 19
Cake\Controller\Controller::invokeAction() - CORE/src/Controller/Controller.php, line 531
Cake\Controller\ControllerFactory::invoke() - CORE/src/Controller/ControllerFactory.php, line 151
Cake\Http\BaseApplication::handle() - CORE/src/Http/BaseApplication.php, line 313
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 77
Cake\Http\Middleware\CsrfProtectionMiddleware::process() - CORE/src/Http/Middleware/CsrfProtectionMiddleware.php, line 146
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Http\Middleware\BodyParserMiddleware::process() - CORE/src/Http/Middleware/BodyParserMiddleware.php, line 159
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Routing\Middleware\RoutingMiddleware::process() - CORE/src/Routing/Middleware/RoutingMiddleware.php, line 161
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Routing\Middleware\AssetMiddleware::process() - CORE/src/Routing/Middleware/AssetMiddleware.php, line 68
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Error\Middleware\ErrorHandlerMiddleware::process() - CORE/src/Error/Middleware/ErrorHandlerMiddleware.php, line 121
Deprecated (8192): Return type of Cake\Database\Statement\StatementDecorator::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/Database/Statement/StatementDecorator.php, line 285]
<?php class StatementDecorator implements StatementInterface, Countable, IteratorAggregate
<?php {
include - CORE/src/Database/Statement/StatementDecorator.php, line 36
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
include - CORE/src/Database/Statement/PDOStatement.php, line 28
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
include - CORE/src/Database/Statement/MysqlStatement.php, line 26
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
Cake\Database\Driver\Mysql::prepare() - CORE/src/Database/Driver/Mysql.php, line 215
Cake\Database\Connection::Cake\Database\{closure}() - CORE/src/Database/Connection.php, line 284
Cake\Core\Retry\CommandRetry::run() - CORE/src/Core/Retry/CommandRetry.php, line 70
Cake\Database\Connection::prepare() - CORE/src/Database/Connection.php, line 283
Cake\Database\Connection::Cake\Database\{closure}() - CORE/src/Database/Connection.php, line 306
Cake\Core\Retry\CommandRetry::run() - CORE/src/Core/Retry/CommandRetry.php, line 70
Cake\Database\Connection::execute() - CORE/src/Database/Connection.php, line 305
Cake\Database\Schema\Collection::_reflect() - CORE/src/Database/Schema/Collection.php, line 140
Deprecated (8192): Return type of Cake\Chronos\Traits\FactoryTrait::createFromFormat($format, $time, $tz = null): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::createFromFormat(string $format, string $datetime, ?DateTimeZone $timezone = null): DateTimeImmutable|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FactoryTrait.php, line 233]
<?php class Date extends DateTimeImmutable implements ChronosInterface
<?php {
include - ROOT/vendor/cakephp/chronos/src/Date.php, line 54
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
include - CORE/src/I18n/FrozenDate.php, line 29
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
class_exists - [internal], line ??
Cake\Database\Type\DateTimeType::_setClassName() - CORE/src/Database/Type/DateTimeType.php, line 418
Cake\Database\Type\DateType::useImmutable() - CORE/src/Database/Type/DateType.php, line 58
Cake\Database\Type\DateTimeType::__construct() - CORE/src/Database/Type/DateTimeType.php, line 124
Cake\Database\TypeFactory::build() - CORE/src/Database/TypeFactory.php, line 81
Cake\Database\TypeFactory::buildAll() - CORE/src/Database/TypeFactory.php, line 93
Cake\Database\FieldTypeConverter::__construct() - CORE/src/Database/FieldTypeConverter.php, line 70
Cake\Database\Query::_decorateStatement() - CORE/src/Database/Query.php, line 2248
Cake\Database\Query::execute() - CORE/src/Database/Query.php, line 251
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Deprecated (8192): Return type of Cake\Chronos\Traits\FrozenTimeTrait::setTime($hours, $minutes, $seconds = null, $microseconds = null): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::setTime(int $hour, int $minute, int $second = 0, int $microsecond = 0): DateTimeImmutable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php, line 78]
<?php class Date extends DateTimeImmutable implements ChronosInterface
<?php {
include - ROOT/vendor/cakephp/chronos/src/Date.php, line 54
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
include - CORE/src/I18n/FrozenDate.php, line 29
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
class_exists - [internal], line ??
Cake\Database\Type\DateTimeType::_setClassName() - CORE/src/Database/Type/DateTimeType.php, line 418
Cake\Database\Type\DateType::useImmutable() - CORE/src/Database/Type/DateType.php, line 58
Cake\Database\Type\DateTimeType::__construct() - CORE/src/Database/Type/DateTimeType.php, line 124
Cake\Database\TypeFactory::build() - CORE/src/Database/TypeFactory.php, line 81
Cake\Database\TypeFactory::buildAll() - CORE/src/Database/TypeFactory.php, line 93
Cake\Database\FieldTypeConverter::__construct() - CORE/src/Database/FieldTypeConverter.php, line 70
Cake\Database\Query::_decorateStatement() - CORE/src/Database/Query.php, line 2248
Cake\Database\Query::execute() - CORE/src/Database/Query.php, line 251
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Deprecated (8192): Return type of Cake\Chronos\Traits\FrozenTimeTrait::add($interval): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::add(DateInterval $interval): DateTimeImmutable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php, line 91]
<?php class Date extends DateTimeImmutable implements ChronosInterface
<?php {
include - ROOT/vendor/cakephp/chronos/src/Date.php, line 54
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
include - CORE/src/I18n/FrozenDate.php, line 29
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
class_exists - [internal], line ??
Cake\Database\Type\DateTimeType::_setClassName() - CORE/src/Database/Type/DateTimeType.php, line 418
Cake\Database\Type\DateType::useImmutable() - CORE/src/Database/Type/DateType.php, line 58
Cake\Database\Type\DateTimeType::__construct() - CORE/src/Database/Type/DateTimeType.php, line 124
Cake\Database\TypeFactory::build() - CORE/src/Database/TypeFactory.php, line 81
Cake\Database\TypeFactory::buildAll() - CORE/src/Database/TypeFactory.php, line 93
Cake\Database\FieldTypeConverter::__construct() - CORE/src/Database/FieldTypeConverter.php, line 70
Cake\Database\Query::_decorateStatement() - CORE/src/Database/Query.php, line 2248
Cake\Database\Query::execute() - CORE/src/Database/Query.php, line 251
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Deprecated (8192): Return type of Cake\Chronos\Traits\FrozenTimeTrait::sub($interval): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::sub(DateInterval $interval): DateTimeImmutable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php, line 104]
<?php class Date extends DateTimeImmutable implements ChronosInterface
<?php {
include - ROOT/vendor/cakephp/chronos/src/Date.php, line 54
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
include - CORE/src/I18n/FrozenDate.php, line 29
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
class_exists - [internal], line ??
Cake\Database\Type\DateTimeType::_setClassName() - CORE/src/Database/Type/DateTimeType.php, line 418
Cake\Database\Type\DateType::useImmutable() - CORE/src/Database/Type/DateType.php, line 58
Cake\Database\Type\DateTimeType::__construct() - CORE/src/Database/Type/DateTimeType.php, line 124
Cake\Database\TypeFactory::build() - CORE/src/Database/TypeFactory.php, line 81
Cake\Database\TypeFactory::buildAll() - CORE/src/Database/TypeFactory.php, line 93
Cake\Database\FieldTypeConverter::__construct() - CORE/src/Database/FieldTypeConverter.php, line 70
Cake\Database\Query::_decorateStatement() - CORE/src/Database/Query.php, line 2248
Cake\Database\Query::execute() - CORE/src/Database/Query.php, line 251
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Deprecated (8192): Return type of Cake\Chronos\Traits\FrozenTimeTrait::setTimezone($value) should either be compatible with DateTimeImmutable::setTimezone(DateTimeZone $timezone): DateTimeImmutable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php, line 143]
<?php class Date extends DateTimeImmutable implements ChronosInterface
<?php {
include - ROOT/vendor/cakephp/chronos/src/Date.php, line 54
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
include - CORE/src/I18n/FrozenDate.php, line 29
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
class_exists - [internal], line ??
Cake\Database\Type\DateTimeType::_setClassName() - CORE/src/Database/Type/DateTimeType.php, line 418
Cake\Database\Type\DateType::useImmutable() - CORE/src/Database/Type/DateType.php, line 58
Cake\Database\Type\DateTimeType::__construct() - CORE/src/Database/Type/DateTimeType.php, line 124
Cake\Database\TypeFactory::build() - CORE/src/Database/TypeFactory.php, line 81
Cake\Database\TypeFactory::buildAll() - CORE/src/Database/TypeFactory.php, line 93
Cake\Database\FieldTypeConverter::__construct() - CORE/src/Database/FieldTypeConverter.php, line 70
Cake\Database\Query::_decorateStatement() - CORE/src/Database/Query.php, line 2248
Cake\Database\Query::execute() - CORE/src/Database/Query.php, line 251
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Deprecated (8192): Return type of Cake\Chronos\Traits\FrozenTimeTrait::setTimestamp($value): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::setTimestamp(int $timestamp): DateTimeImmutable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php, line 157]
<?php class Date extends DateTimeImmutable implements ChronosInterface
<?php {
include - ROOT/vendor/cakephp/chronos/src/Date.php, line 54
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
include - CORE/src/I18n/FrozenDate.php, line 29
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
class_exists - [internal], line ??
Cake\Database\Type\DateTimeType::_setClassName() - CORE/src/Database/Type/DateTimeType.php, line 418
Cake\Database\Type\DateType::useImmutable() - CORE/src/Database/Type/DateType.php, line 58
Cake\Database\Type\DateTimeType::__construct() - CORE/src/Database/Type/DateTimeType.php, line 124
Cake\Database\TypeFactory::build() - CORE/src/Database/TypeFactory.php, line 81
Cake\Database\TypeFactory::buildAll() - CORE/src/Database/TypeFactory.php, line 93
Cake\Database\FieldTypeConverter::__construct() - CORE/src/Database/FieldTypeConverter.php, line 70
Cake\Database\Query::_decorateStatement() - CORE/src/Database/Query.php, line 2248
Cake\Database\Query::execute() - CORE/src/Database/Query.php, line 251
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Deprecated (8192): Return type of Cake\Chronos\Traits\FrozenTimeTrait::modify($relative): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::modify(string $modifier): DateTimeImmutable|false, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/FrozenTimeTrait.php, line 171]
<?php class Date extends DateTimeImmutable implements ChronosInterface
<?php {
include - ROOT/vendor/cakephp/chronos/src/Date.php, line 54
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
include - CORE/src/I18n/FrozenDate.php, line 29
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
class_exists - [internal], line ??
Cake\Database\Type\DateTimeType::_setClassName() - CORE/src/Database/Type/DateTimeType.php, line 418
Cake\Database\Type\DateType::useImmutable() - CORE/src/Database/Type/DateType.php, line 58
Cake\Database\Type\DateTimeType::__construct() - CORE/src/Database/Type/DateTimeType.php, line 124
Cake\Database\TypeFactory::build() - CORE/src/Database/TypeFactory.php, line 81
Cake\Database\TypeFactory::buildAll() - CORE/src/Database/TypeFactory.php, line 93
Cake\Database\FieldTypeConverter::__construct() - CORE/src/Database/FieldTypeConverter.php, line 70
Cake\Database\Query::_decorateStatement() - CORE/src/Database/Query.php, line 2248
Cake\Database\Query::execute() - CORE/src/Database/Query.php, line 251
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Deprecated (8192): Return type of Cake\Chronos\Traits\ModifierTrait::setDate($year, $month, $day): Cake\Chronos\ChronosInterface should either be compatible with DateTimeImmutable::setDate(int $year, int $month, int $day): DateTimeImmutable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [ROOT/vendor/cakephp/chronos/src/Traits/ModifierTrait.php, line 112]
<?php class Date extends DateTimeImmutable implements ChronosInterface
<?php {
include - ROOT/vendor/cakephp/chronos/src/Date.php, line 54
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
include - CORE/src/I18n/FrozenDate.php, line 29
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
class_exists - [internal], line ??
Cake\Database\Type\DateTimeType::_setClassName() - CORE/src/Database/Type/DateTimeType.php, line 418
Cake\Database\Type\DateType::useImmutable() - CORE/src/Database/Type/DateType.php, line 58
Cake\Database\Type\DateTimeType::__construct() - CORE/src/Database/Type/DateTimeType.php, line 124
Cake\Database\TypeFactory::build() - CORE/src/Database/TypeFactory.php, line 81
Cake\Database\TypeFactory::buildAll() - CORE/src/Database/TypeFactory.php, line 93
Cake\Database\FieldTypeConverter::__construct() - CORE/src/Database/FieldTypeConverter.php, line 70
Cake\Database\Query::_decorateStatement() - CORE/src/Database/Query.php, line 2248
Cake\Database\Query::execute() - CORE/src/Database/Query.php, line 251
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Deprecated (8192): Return type of Cake\I18n\FrozenDate::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/I18n/DateFormatTrait.php, line 442]
<?php class FrozenDate extends ChronosDate implements I18nDateTimeInterface
<?php {
include - CORE/src/I18n/FrozenDate.php, line 29
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
class_exists - [internal], line ??
Cake\Database\Type\DateTimeType::_setClassName() - CORE/src/Database/Type/DateTimeType.php, line 418
Cake\Database\Type\DateType::useImmutable() - CORE/src/Database/Type/DateType.php, line 58
Cake\Database\Type\DateTimeType::__construct() - CORE/src/Database/Type/DateTimeType.php, line 124
Cake\Database\TypeFactory::build() - CORE/src/Database/TypeFactory.php, line 81
Cake\Database\TypeFactory::buildAll() - CORE/src/Database/TypeFactory.php, line 93
Cake\Database\FieldTypeConverter::__construct() - CORE/src/Database/FieldTypeConverter.php, line 70
Cake\Database\Query::_decorateStatement() - CORE/src/Database/Query.php, line 2248
Cake\Database\Query::execute() - CORE/src/Database/Query.php, line 251
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Cake\ORM\Query::all() - CORE/src/ORM/Query.php, line 1072
Cake\ORM\Query::first() - CORE/src/Datasource/QueryTrait.php, line 500
App\Controller\PartsController::view() - APP/Controller/PartsController.php, line 20
Deprecated (8192): Return type of Cake\I18n\FrozenTime::jsonSerialize() should either be compatible with JsonSerializable::jsonSerialize(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/I18n/DateFormatTrait.php, line 442]
<?php class FrozenTime extends Chronos implements I18nDateTimeInterface
<?php {
include - CORE/src/I18n/FrozenTime.php, line 30
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
class_exists - [internal], line ??
Cake\Database\Type\DateTimeType::_setClassName() - CORE/src/Database/Type/DateTimeType.php, line 418
Cake\Database\Type\DateTimeType::useImmutable() - CORE/src/Database/Type/DateTimeType.php, line 402
Cake\Database\Type\DateTimeType::__construct() - CORE/src/Database/Type/DateTimeType.php, line 124
Cake\Database\TypeFactory::build() - CORE/src/Database/TypeFactory.php, line 81
Cake\Database\TypeFactory::buildAll() - CORE/src/Database/TypeFactory.php, line 93
Cake\Database\FieldTypeConverter::__construct() - CORE/src/Database/FieldTypeConverter.php, line 70
Cake\Database\Query::_decorateStatement() - CORE/src/Database/Query.php, line 2248
Cake\Database\Query::execute() - CORE/src/Database/Query.php, line 251
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Cake\ORM\Query::all() - CORE/src/ORM/Query.php, line 1072
Cake\ORM\Query::first() - CORE/src/Datasource/QueryTrait.php, line 500
App\Controller\PartsController::view() - APP/Controller/PartsController.php, line 20
Deprecated (8192): Return type of Cake\Database\Statement\BufferedStatement::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/Database/Statement/BufferedStatement.php, line 294]
<?php class BufferedStatement implements Iterator, StatementInterface
<?php {
include - CORE/src/Database/Statement/BufferedStatement.php, line 30
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
Cake\ORM\EagerLoader::_collectKeys() - CORE/src/ORM/EagerLoader.php, line 815
Cake\ORM\EagerLoader::loadExternal() - CORE/src/ORM/EagerLoader.php, line 638
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Cake\ORM\Query::all() - CORE/src/ORM/Query.php, line 1072
Cake\ORM\Query::first() - CORE/src/Datasource/QueryTrait.php, line 500
App\Controller\PartsController::view() - APP/Controller/PartsController.php, line 20
Cake\Controller\Controller::invokeAction() - CORE/src/Controller/Controller.php, line 531
Cake\Controller\ControllerFactory::invoke() - CORE/src/Controller/ControllerFactory.php, line 151
Cake\Http\BaseApplication::handle() - CORE/src/Http/BaseApplication.php, line 313
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 77
Cake\Http\Middleware\CsrfProtectionMiddleware::process() - CORE/src/Http/Middleware/CsrfProtectionMiddleware.php, line 146
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Http\Middleware\BodyParserMiddleware::process() - CORE/src/Http/Middleware/BodyParserMiddleware.php, line 159
Deprecated (8192): Return type of Cake\Database\Statement\BufferedStatement::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/Database/Statement/BufferedStatement.php, line 284]
<?php class BufferedStatement implements Iterator, StatementInterface
<?php {
include - CORE/src/Database/Statement/BufferedStatement.php, line 30
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
Cake\ORM\EagerLoader::_collectKeys() - CORE/src/ORM/EagerLoader.php, line 815
Cake\ORM\EagerLoader::loadExternal() - CORE/src/ORM/EagerLoader.php, line 638
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Cake\ORM\Query::all() - CORE/src/ORM/Query.php, line 1072
Cake\ORM\Query::first() - CORE/src/Datasource/QueryTrait.php, line 500
App\Controller\PartsController::view() - APP/Controller/PartsController.php, line 20
Cake\Controller\Controller::invokeAction() - CORE/src/Controller/Controller.php, line 531
Cake\Controller\ControllerFactory::invoke() - CORE/src/Controller/ControllerFactory.php, line 151
Cake\Http\BaseApplication::handle() - CORE/src/Http/BaseApplication.php, line 313
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 77
Cake\Http\Middleware\CsrfProtectionMiddleware::process() - CORE/src/Http/Middleware/CsrfProtectionMiddleware.php, line 146
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Http\Middleware\BodyParserMiddleware::process() - CORE/src/Http/Middleware/BodyParserMiddleware.php, line 159
Deprecated (8192): Return type of Cake\ORM\ResultSet::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/ORM/ResultSet.php, line 187]
<?php class ResultSet implements ResultSetInterface
<?php {
include - CORE/src/ORM/ResultSet.php, line 33
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1126
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Cake\ORM\Query::all() - CORE/src/ORM/Query.php, line 1072
Cake\ORM\Association\Loader\SelectLoader::_buildResultMap() - CORE/src/ORM/Association/Loader/SelectLoader.php, line 470
Cake\ORM\Association\Loader\SelectLoader::buildEagerLoader() - CORE/src/ORM/Association/Loader/SelectLoader.php, line 128
Cake\ORM\Association\HasMany::eagerLoader() - CORE/src/ORM/Association/HasMany.php, line 670
Cake\ORM\EagerLoader::loadExternal() - CORE/src/ORM/EagerLoader.php, line 673
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Cake\ORM\Query::all() - CORE/src/ORM/Query.php, line 1072
Cake\ORM\Query::first() - CORE/src/Datasource/QueryTrait.php, line 500
App\Controller\PartsController::view() - APP/Controller/PartsController.php, line 20
Cake\Controller\Controller::invokeAction() - CORE/src/Controller/Controller.php, line 531
Cake\Controller\ControllerFactory::invoke() - CORE/src/Controller/ControllerFactory.php, line 151
Deprecated (8192): Cake\ORM\ResultSet implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) [CORE/src/ORM/ResultSet.php, line 33]
<?php class ResultSet implements ResultSetInterface
<?php {
include - CORE/src/ORM/ResultSet.php, line 33
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1126
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Cake\ORM\Query::all() - CORE/src/ORM/Query.php, line 1072
Cake\ORM\Association\Loader\SelectLoader::_buildResultMap() - CORE/src/ORM/Association/Loader/SelectLoader.php, line 470
Cake\ORM\Association\Loader\SelectLoader::buildEagerLoader() - CORE/src/ORM/Association/Loader/SelectLoader.php, line 128
Cake\ORM\Association\HasMany::eagerLoader() - CORE/src/ORM/Association/HasMany.php, line 670
Cake\ORM\EagerLoader::loadExternal() - CORE/src/ORM/EagerLoader.php, line 673
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Cake\ORM\Query::all() - CORE/src/ORM/Query.php, line 1072
Cake\ORM\Query::first() - CORE/src/Datasource/QueryTrait.php, line 500
App\Controller\PartsController::view() - APP/Controller/PartsController.php, line 20
Cake\Controller\Controller::invokeAction() - CORE/src/Controller/Controller.php, line 531
Cake\Controller\ControllerFactory::invoke() - CORE/src/Controller/ControllerFactory.php, line 151
Deprecated (8192): Cake\Collection\Collection implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) [CORE/src/Collection/Collection.php, line 27]
<?php class Collection extends IteratorIterator implements CollectionInterface, Serializable
<?php {
include - CORE/src/Collection/Collection.php, line 27
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
Cake\ORM\ResultSet::_calculateAssociationMap() - CORE/src/ORM/ResultSet.php, line 370
Cake\ORM\ResultSet::__construct() - CORE/src/ORM/ResultSet.php, line 166
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1126
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Cake\ORM\Query::all() - CORE/src/ORM/Query.php, line 1072
Cake\ORM\Association\Loader\SelectLoader::_buildResultMap() - CORE/src/ORM/Association/Loader/SelectLoader.php, line 470
Cake\ORM\Association\Loader\SelectLoader::buildEagerLoader() - CORE/src/ORM/Association/Loader/SelectLoader.php, line 128
Cake\ORM\Association\HasMany::eagerLoader() - CORE/src/ORM/Association/HasMany.php, line 670
Cake\ORM\EagerLoader::loadExternal() - CORE/src/ORM/EagerLoader.php, line 673
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Cake\ORM\Query::all() - CORE/src/ORM/Query.php, line 1072
Cake\ORM\Query::first() - CORE/src/Datasource/QueryTrait.php, line 500
App\Controller\PartsController::view() - APP/Controller/PartsController.php, line 20
Deprecated (8192): Cake\Collection\Iterator\FilterIterator implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) [CORE/src/Collection/Iterator/FilterIterator.php, line 31]
include - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
Cake\Collection\Collection::filter() - CORE/src/Collection/CollectionTrait.php, line 86
Cake\Collection\Collection::match() - CORE/src/Collection/CollectionTrait.php, line 382
Cake\ORM\ResultSet::_calculateAssociationMap() - CORE/src/ORM/ResultSet.php, line 371
Cake\ORM\ResultSet::__construct() - CORE/src/ORM/ResultSet.php, line 166
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1126
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Cake\ORM\Query::all() - CORE/src/ORM/Query.php, line 1072
Cake\ORM\Association\Loader\SelectLoader::_buildResultMap() - CORE/src/ORM/Association/Loader/SelectLoader.php, line 470
Cake\ORM\Association\Loader\SelectLoader::buildEagerLoader() - CORE/src/ORM/Association/Loader/SelectLoader.php, line 128
Cake\ORM\Association\HasMany::eagerLoader() - CORE/src/ORM/Association/HasMany.php, line 670
Cake\ORM\EagerLoader::loadExternal() - CORE/src/ORM/EagerLoader.php, line 673
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Cake\ORM\Query::all() - CORE/src/ORM/Query.php, line 1072
Deprecated (8192): Return type of & Cake\ORM\Entity::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice [CORE/src/Datasource/EntityTrait.php, line 604]
<?php class Entity implements EntityInterface, InvalidPropertyInterface
<?php {
include - CORE/src/ORM/Entity.php, line 27
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
include - APP/Model/Entity/Chapter.php, line 7
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
class_exists - [internal], line ??
Cake\ORM\Table::getEntityClass() - CORE/src/ORM/Table.php, line 717
Cake\ORM\ResultSet::__construct() - CORE/src/ORM/ResultSet.php, line 168
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1126
Cake\ORM\Query::_all() - CORE/src/Datasource/QueryTrait.php, line 293
Cake\ORM\Query::all() - CORE/src/ORM/Query.php, line 1072
Cake\ORM\Association\Loader\SelectLoader::_buildResultMap() - CORE/src/ORM/Association/Loader/SelectLoader.php, line 470
Cake\ORM\Association\Loader\SelectLoader::buildEagerLoader() - CORE/src/ORM/Association/Loader/SelectLoader.php, line 128
Cake\ORM\Association\HasMany::eagerLoader() - CORE/src/ORM/Association/HasMany.php, line 670
Cake\ORM\EagerLoader::loadExternal() - CORE/src/ORM/EagerLoader.php, line 673
Cake\ORM\Query::_execute() - CORE/src/ORM/Query.php, line 1124
Deprecated (8192): Cake\View\ViewBuilder implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) [CORE/src/View/ViewBuilder.php, line 37]
<?php class ViewBuilder implements JsonSerializable, Serializable
<?php {
include - CORE/src/View/ViewBuilder.php, line 37
Composer\Autoload\includeFile - ROOT/vendor/composer/ClassLoader.php, line 444
Composer\Autoload\ClassLoader::loadClass() - ROOT/vendor/composer/ClassLoader.php, line 322
Cake\Controller\Controller::viewBuilder() - CORE/src/View/ViewVarsTrait.php, line 43
Cake\Controller\Controller::set() - CORE/src/View/ViewVarsTrait.php, line 98
App\Controller\PartsController::view() - APP/Controller/PartsController.php, line 21
Cake\Controller\Controller::invokeAction() - CORE/src/Controller/Controller.php, line 531
Cake\Controller\ControllerFactory::invoke() - CORE/src/Controller/ControllerFactory.php, line 151
Cake\Http\BaseApplication::handle() - CORE/src/Http/BaseApplication.php, line 313
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 77
Cake\Http\Middleware\CsrfProtectionMiddleware::process() - CORE/src/Http/Middleware/CsrfProtectionMiddleware.php, line 146
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Http\Middleware\BodyParserMiddleware::process() - CORE/src/Http/Middleware/BodyParserMiddleware.php, line 159
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Routing\Middleware\RoutingMiddleware::process() - CORE/src/Routing/Middleware/RoutingMiddleware.php, line 161
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Routing\Middleware\AssetMiddleware::process() - CORE/src/Routing/Middleware/AssetMiddleware.php, line 68
Warning (512): Unable to emit headers. Headers sent in file=/home/wbdhgxnxye2r/domains/simplehaptics.se/html/vendor/cakephp/cakephp/src/Error/Debugger.php line=970 [CORE/src/Http/ResponseEmitter.php, line 71]
<?php $message = "Unable to emit headers. Headers sent in file=$file line=$line";
<?php trigger_error($message, E_USER_WARNING);
<?php }
Cake\Http\ResponseEmitter::emit() - CORE/src/Http/ResponseEmitter.php, line 71
Cake\Http\Server::emit() - CORE/src/Http/Server.php, line 128
[main] - ROOT/webroot/index.php, line 40
Warning (2): Cannot modify header information - headers already sent by (output started at /home/wbdhgxnxye2r/domains/simplehaptics.se/html/vendor/cakephp/cakephp/src/Error/Debugger.php:970) [CORE/src/Http/ResponseEmitter.php, line 164]
header - [internal], line ??
Cake\Http\ResponseEmitter::emitStatusLine() - CORE/src/Http/ResponseEmitter.php, line 164
Cake\Http\ResponseEmitter::emit() - CORE/src/Http/ResponseEmitter.php, line 74
Cake\Http\Server::emit() - CORE/src/Http/Server.php, line 128
[main] - ROOT/webroot/index.php, line 40
Warning (2): Cannot modify header information - headers already sent by (output started at /home/wbdhgxnxye2r/domains/simplehaptics.se/html/vendor/cakephp/cakephp/src/Error/Debugger.php:970) [CORE/src/Http/ResponseEmitter.php, line 197]
header - [internal], line ??
Cake\Http\ResponseEmitter::emitHeaders() - CORE/src/Http/ResponseEmitter.php, line 197
Cake\Http\ResponseEmitter::emit() - CORE/src/Http/ResponseEmitter.php, line 75
Cake\Http\Server::emit() - CORE/src/Http/Server.php, line 128
[main] - ROOT/webroot/index.php, line 40
Warning (2): Cannot modify header information - headers already sent by (output started at /home/wbdhgxnxye2r/domains/simplehaptics.se/html/vendor/cakephp/cakephp/src/Error/Debugger.php:970) [CORE/src/Http/ResponseEmitter.php, line 235]
setcookie - [internal], line ??
Cake\Http\ResponseEmitter::setCookie() - CORE/src/Http/ResponseEmitter.php, line 235
Cake\Http\ResponseEmitter::emitCookies() - CORE/src/Http/ResponseEmitter.php, line 218
Cake\Http\ResponseEmitter::emitHeaders() - CORE/src/Http/ResponseEmitter.php, line 206
Cake\Http\ResponseEmitter::emit() - CORE/src/Http/ResponseEmitter.php, line 75
Cake\Http\Server::emit() - CORE/src/Http/Server.php, line 128
[main] - ROOT/webroot/index.php, line 40
Simple Haptics | Ph.D. thesis of Camille Moussette
Cake\View\Cell::loadModel() - CORE/src/Datasource/ModelAwareTrait.php, line 124
App\View\Cell\ListingCell::display() - APP/View/Cell/ListingCell.php, line 14
ReflectionMethod::invokeArgs() - [internal], line ??
Cake\View\Cell::Cake\View\{closure}() - CORE/src/View/Cell.php, line 172
Cake\View\Cell::render() - CORE/src/View/Cell.php, line 218
include - ROOT/templates/element/navbar.php, line 11
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Cake\View\View::_renderElement() - CORE/src/View/View.php, line 1668
Cake\View\View::element() - CORE/src/View/View.php, line 655
include - ROOT/templates/layout/default.php, line 49
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Cake\View\View::renderLayout() - CORE/src/View/View.php, line 816
Cake\View\View::render() - CORE/src/View/View.php, line 775
Cake\Controller\Controller::render() - CORE/src/Controller/Controller.php, line 699
Cake\Controller\Controller::invokeAction() - CORE/src/Controller/Controller.php, line 540
Deprecated (8192): Creation of dynamic property App\View\AppView::$Html is deprecated [CORE/src/View/View.php, line 1090]
Cake\View\View::__get() - CORE/src/View/View.php, line 1090
include - ROOT/templates/cell/Listing/menu.php, line 5
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Cake\View\View::render() - CORE/src/View/View.php, line 764
Cake\View\Cell::Cake\View\{closure}() - CORE/src/View/Cell.php, line 201
Cake\View\Cell::render() - CORE/src/View/Cell.php, line 218
include - ROOT/templates/element/navbar.php, line 11
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Cake\View\View::_renderElement() - CORE/src/View/View.php, line 1668
Cake\View\View::element() - CORE/src/View/View.php, line 655
include - ROOT/templates/layout/default.php, line 49
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Cake\View\View::renderLayout() - CORE/src/View/View.php, line 816
Cake\View\View::render() - CORE/src/View/View.php, line 775
Deprecated (8192): Creation of dynamic property App\View\AppView::$Url is deprecated [CORE/src/View/View.php, line 1215]
Cake\View\View::loadHelper() - CORE/src/View/View.php, line 1215
Cake\View\Helper::__get() - CORE/src/View/Helper.php, line 115
Cake\View\Helper\HtmlHelper::link() - CORE/src/View/Helper/HtmlHelper.php, line 257
include - ROOT/templates/cell/Listing/menu.php, line 5
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Cake\View\View::render() - CORE/src/View/View.php, line 764
Cake\View\Cell::Cake\View\{closure}() - CORE/src/View/Cell.php, line 201
Cake\View\Cell::render() - CORE/src/View/Cell.php, line 218
include - ROOT/templates/element/navbar.php, line 11
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Cake\View\View::_renderElement() - CORE/src/View/View.php, line 1668
Cake\View\View::element() - CORE/src/View/View.php, line 655
include - ROOT/templates/layout/default.php, line 49
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Deprecated (8192): Creation of dynamic property Cake\View\Helper\HtmlHelper::$Url is deprecated [CORE/src/View/Helper.php, line 115]
Cake\View\Helper::__get() - CORE/src/View/Helper.php, line 115
Cake\View\Helper\HtmlHelper::link() - CORE/src/View/Helper/HtmlHelper.php, line 257
include - ROOT/templates/cell/Listing/menu.php, line 5
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Cake\View\View::render() - CORE/src/View/View.php, line 764
Cake\View\Cell::Cake\View\{closure}() - CORE/src/View/Cell.php, line 201
Cake\View\Cell::render() - CORE/src/View/Cell.php, line 218
include - ROOT/templates/element/navbar.php, line 11
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Cake\View\View::_renderElement() - CORE/src/View/View.php, line 1668
Cake\View\View::element() - CORE/src/View/View.php, line 655
include - ROOT/templates/layout/default.php, line 49
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Cake\View\View::renderLayout() - CORE/src/View/View.php, line 816
Cake\View\View::__get() - CORE/src/View/View.php, line 1090
eval - ROOT/templates/Parts/view.php(25) : eval()'d code, line 3
include - ROOT/templates/Parts/view.php, line 25
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Cake\View\View::render() - CORE/src/View/View.php, line 764
Cake\Controller\Controller::render() - CORE/src/Controller/Controller.php, line 699
Cake\Controller\Controller::invokeAction() - CORE/src/Controller/Controller.php, line 540
Cake\Controller\ControllerFactory::invoke() - CORE/src/Controller/ControllerFactory.php, line 151
Cake\Http\BaseApplication::handle() - CORE/src/Http/BaseApplication.php, line 313
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 77
Cake\Http\Middleware\CsrfProtectionMiddleware::process() - CORE/src/Http/Middleware/CsrfProtectionMiddleware.php, line 146
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Http\Middleware\BodyParserMiddleware::process() - CORE/src/Http/Middleware/BodyParserMiddleware.php, line 159
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Routing\Middleware\RoutingMiddleware::process() - CORE/src/Routing/Middleware/RoutingMiddleware.php, line 161
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Deprecated (8192): Creation of dynamic property App\View\AppView::$Url is deprecated [CORE/src/View/View.php, line 1215]
Cake\View\View::loadHelper() - CORE/src/View/View.php, line 1215
Cake\View\Helper::__get() - CORE/src/View/Helper.php, line 115
Cake\View\Helper\HtmlHelper::image() - CORE/src/View/Helper/HtmlHelper.php, line 645
eval - ROOT/templates/Parts/view.php(25) : eval()'d code, line 3
include - ROOT/templates/Parts/view.php, line 25
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Cake\View\View::render() - CORE/src/View/View.php, line 764
Cake\Controller\Controller::render() - CORE/src/Controller/Controller.php, line 699
Cake\Controller\Controller::invokeAction() - CORE/src/Controller/Controller.php, line 540
Cake\Controller\ControllerFactory::invoke() - CORE/src/Controller/ControllerFactory.php, line 151
Cake\Http\BaseApplication::handle() - CORE/src/Http/BaseApplication.php, line 313
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 77
Cake\Http\Middleware\CsrfProtectionMiddleware::process() - CORE/src/Http/Middleware/CsrfProtectionMiddleware.php, line 146
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Http\Middleware\BodyParserMiddleware::process() - CORE/src/Http/Middleware/BodyParserMiddleware.php, line 159
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Deprecated (8192): Creation of dynamic property Cake\View\Helper\HtmlHelper::$Url is deprecated [CORE/src/View/Helper.php, line 115]
Cake\View\Helper::__get() - CORE/src/View/Helper.php, line 115
Cake\View\Helper\HtmlHelper::image() - CORE/src/View/Helper/HtmlHelper.php, line 645
eval - ROOT/templates/Parts/view.php(25) : eval()'d code, line 3
include - ROOT/templates/Parts/view.php, line 25
Cake\View\View::_evaluate() - CORE/src/View/View.php, line 1176
Cake\View\View::_render() - CORE/src/View/View.php, line 1134
Cake\View\View::render() - CORE/src/View/View.php, line 764
Cake\Controller\Controller::render() - CORE/src/Controller/Controller.php, line 699
Cake\Controller\Controller::invokeAction() - CORE/src/Controller/Controller.php, line 540
Cake\Controller\ControllerFactory::invoke() - CORE/src/Controller/ControllerFactory.php, line 151
Cake\Http\BaseApplication::handle() - CORE/src/Http/BaseApplication.php, line 313
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 77
Cake\Http\Middleware\CsrfProtectionMiddleware::process() - CORE/src/Http/Middleware/CsrfProtectionMiddleware.php, line 146
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Http\Middleware\BodyParserMiddleware::process() - CORE/src/Http/Middleware/BodyParserMiddleware.php, line 159
Cake\Http\Runner::handle() - CORE/src/Http/Runner.php, line 73
Cake\Routing\Middleware\RoutingMiddleware::process() - CORE/src/Routing/Middleware/RoutingMiddleware.php, line 161
In the first part of this book, the key pieces that make up the haptic design landscape have been introduced and discussed. By scrutinizing their origins and potential, and framing their role in this book’s inquiries, this new landscape is inevitably starting to reveal itself, becoming more approachable and comprehensible. While not everything is clear yet, the conditions are suitable enough to take my work to the next phase, that of designing haptics.
The second part of this thesis, titled Activities, presents the bulk of the haptic design activities that constitute the core part of this work. Design work, in this circumstance, means a number of practical, creative, construction-oriented, and making-related design research activities in the area of haptic interaction design, i.e. activities which previously have been discussed as research through design for design. The coming chapters will thus present a number of selected first-person experiences of the author of this work, engulfing designing haptics, under partly different conditions and within different environments, as a design researcher. These direct first-person experiences; the documentation in the form of notes and chronicles that remain; and the feedback that has been gathered from other participants throughout these processes all constitute essential elements of this research work. This is because, first, they come together to expose the practical work that has to be accomplished in designing and developing haptic interfaces. As with any design project, this design work must be analyzed, dissected, and valued in relation to its original design mandate.
Second, the documentation that remains from these activities is more than project descriptions; they are stories and narratives of a journey into haptic design, enriched with comments and impressions of the author’s experiences using a direct first-person perspective. In many instances, I explicitly comment and reflect on my own work, sharing my impression of what I did, why this was done, and try to detail how a particular haptic stimulus felt. It is one way of inviting the reader into some kind of disembodied haptic experience. Short of having the reader holding a haptic device and trying it out, it is the best that can be achieved within the limits of academic text and the book format. The activities presented are hopefully rich and nuanced enough so that one can get a feeling of the particular design situation and the experiences that took place during these activities.
This second part of the book is divided into four chapters, each one dissecting a significant practical, real-world activity of my research. Chapter 2.1 presents an early workshop activity, the so-called eNTERFACE workshop, which was the author’s first real encounter with haptic research and as such became a prototype study for the whole work. This experience proved crucial in my understanding of haptics and left a strong desire to approach and explore haptic design differently. Chapter 2.2 gives an account of the first of two internships at Microsoft Research, where I was able to act on my new design-led ideal of haptic design and put it to the test via a series of hardware sketches. It is through this work that my research started to materialize and where it gradually became more articulated and coherent. Chapter 2.3 introduces the second Microsoft Research internship, where the role and potential of haptics was specifically scrutinized in relation to an existing interaction platform, the Microsoft Kinect system. Chapter 2.4 summarizes the activities, the lessons learnt, and the insights gained from a series of five workshops that were conducted over a two-year-period with different groups of students, professional designers, and professionals from other domains. These workshops were carried out in an empirical vein, i.e. to intentionally share the author’s haptic design work with others and to actively seek out feedback, reaction, and further inspiration, that in turn could feed back into my design work. Such a collective testing ground has allowed me to significantly refine my ideas of what haptic interaction design is and can be.
Hence, the design research journey described in this part builds on a diverse set of experiences and concrete realizations. It has been full of tentative, exploratory, and idea-testing design activities, allowing me to acquire new knowledge, new skills, and constantly readjust my course of action. Little by little, the process has come to correct my assumptions, develop new ones, and I have invariably come to gain a clearer understanding of the haptic interaction design territory and how to best navigate it.