[phpBB] Cron Status 확장 기능을 쓰려고 할 때 나올 수 있는 오류 (container_exception)

  phpBB에서 쓸 수 있는 Cron Status 확장 기능의 현재 최신판(3.1.2)은 phpbb 3.1.×에 맞추어 개발되었다. Cron Status를 phpBB 3.3.×에 쓰려고 하면 아래처럼 오류가 나올 수 있다.

CONTAINER_EXCEPTION - The file does not contain valid YAML: ...

CONTAINER_EXCEPTION

EXCEPTION: The file "/.../ext/boardtools/cronstatus/config/services.yml" does not contain valid YAML: The reserved indicator "@" cannot start a plain scalar; you need to quote the scalar at line 5 (near "- @config").

#0 /.../vendor/symfony/dependency-injection/Loader/YamlFileLoader.php(117): Symfony\Component\DependencyInjection\Loader\YamlFileLoader->loadFile()

#1 /.../phpbb/extension/di/extension_base.php(99): Symfony\Component\DependencyInjection\Loader\YamlFileLoader->load()

#2 /.../phpbb/extension/di/extension_base.php(63): phpbb\extension\di\extension_base->load_services()

#3 /.../vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php(71): phpbb\extension\di\extension_base->load()

#4 /.../vendor/symfony/http-kernel/DependencyInjection/MergeExtensionConfigurationPass.php(39): Symfony\Component\DependencyInjection\Compiler\MergeExtensionConfigurationPass->process()

#5 /.../vendor/symfony/dependency-injection/Compiler/Compiler.php(140): Symfony\Component\HttpKernel\DependencyInjection\MergeExtensionConfigurationPass->process()

#6 /.../vendor/symfony/dependency-injection/ContainerBuilder.php(789): Symfony\Component\DependencyInjection\Compiler\Compiler->compile()

#7 /.../phpbb/di/container_builder.php(223): Symfony\Component\DependencyInjection\ContainerBuilder->compile()

#8 /.../common.php(125): phpbb\di\container_builder->get_container()

#9 /.../adm/index.php(23): require('...') #10 {main}

  phpBB • ACP error when installing this extension with v3.3 - Cron Status에 해결 방법이 나와 있다.

  .../ext/boardtools/cronstatus/config/services.yml의 내용에 YAML 형식에 맞추어 아래처럼 작은따옴표(')를 붙여 준다.

services:
boardtools.cronstatus.listener:
class: boardtools\cronstatus\event\listener
arguments:
- @config
- @controller.helper
- @user
- @template
- @dbal.conn
- @cron.manager
- @dispatcher
tags:
- { name: event.listener }

services:
boardtools.cronstatus.listener:
class: boardtools\cronstatus\event\listener
arguments:
- '@config'
- '@controller.helper'
- '@user'
- '@template'
- '@dbal.conn'
- '@cron.manager'
- '@dispatcher'
tags:
- { name: event.listener }

 

.../ext/boardtools/cronstatus/event/listener.php에서 아래 두 곳을 찾아 if 조건문을 덧붙여 준다.

			$rows[] = array(
"config_name" => "prune_forum_last_gc", // This is the time of the last Cron Job, not the time of pruned forums.
"config_value" => $prune['prune_next'] - $prune['prune_time']
);
$rows[] = array(
"config_name" => "prune_forum_gc",
"config_value" => $prune['prune_time']
);

		if ($prune)
{
$rows[] = array(
"config_name" => "prune_forum_last_gc", // This is the time of the last Cron Job, not the time of pruned forums.
"config_value" => $prune['prune_next'] - $prune['prune_time']
);
$rows[] = array(
"config_name" => "prune_forum_gc",
"config_value" => $prune['prune_time']
);
}

 

			$rows[] = array(
"config_name" => "prune_shadow_topics_last_gc", // This is the time of the last Cron Job, not the time of pruned shadow topics.
"config_value" => $prune_shadow['prune_shadow_next'] - $prune_shadow['prune_shadow_time']
);
$rows[] = array(
"config_name" => "prune_shadow_topics_gc",
"config_value" => $prune_shadow['prune_shadow_time']
);

		if ($prune_shadow)
{
$rows[] = array(
"config_name" => "prune_shadow_topics_last_gc", // This is the time of the last Cron Job, not the time of pruned shadow topics.
"config_value" => $prune_shadow['prune_shadow_next'] - $prune_shadow['prune_shadow_time']
);
$rows[] = array(
"config_name" => "prune_shadow_topics_gc",
"config_value" => $prune_shadow['prune_shadow_time']
);
}
글 걸기 주소 : 이 글에는 글을 걸 수 없습니다.

덧글을 달아 주세요

  1. 세벌 2024/05/09 07:29 고유주소 고치기 답하기

    phpBB 확장기능도 쓰시는군요. 저는 그냥 phpBB 기본으로 설치해 놓고 틈틈이 한국어 번역하고 있네요. 언제 완성될지는 몰라요.
    https://sebul.sarang.net/BB/
    어, 그러고 보니 팥알 님께서도 회원 가입하셨네요. 고맙습니다.

    • 팥알 2024/05/10 18:04 고유주소 고치기 답하기

      세벌 보드에 가입했을 때 처음에 접속이 안 되었는데, 지금은 잘 됩니다. 아마도 제가 착각했거나 세벌 님께서 살펴 주신 덕분이겠죠.

      제 게시판은 진작부터 완성이나 완벽함 같은 건 포기하고 그럭저럭 굴러가게 유지만 하고 있습니다. phpBB가 판올림할 때마다 관리자 화면에 번역 안 된 데가 늘고 있지만, 시간이 더 지나면 일거리가 또 늘겠거니 하며 거의 그대로 두고 있습니다.

      저는 한글 아이디 쓰시는 분들도 있다는 깜빡하고 있었습니다. 영문 아이디만 생각하고 아이디 글자수를 5자 이상으로 했었는데, 그러면 적지 않은 한글 아이디를 쓰지 못할 수 있다는 걸 뒤늦게 깨닫고 부랴부랴 2자 이상으로 했다가 1자 이상으로 낮췄습니다. 실은 제 글이름을 '팥'으로 하려고 한 적이 있었는데, 1자 이름을 안 받아 주는 곳이 많아서 뱀다리처럼 '알'을 붙였습니다.

      phpBB 게시판 운영하면서 이런저런 아쉽고 답답한 데가 있었는데, 어찌 풀 수 있을까 하고 확장 기능도 찾아 보고 있었습니다. 하지만 phpBB가 판올림하면 확장 기능에서 잘잘한 문제가 생기기도 하네요. 꼭 필요하지 않은 확장 기능은 안 쓰는 것이 가장 좋은 것 같습니다.