[3.3] Hello world

Форум для авторов расширений для phpBB. Здесь можно попросить помощи в разработке у коллег.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
gamgam
phpBB 1.0.0
Сообщения: 3
Стаж: 2 дня

[3.3] Hello world

Сообщение gamgam »

Приветствую )
С подачи GPT выбрал phpBB как форумный движок, который можно безболезнено модифицировать через расширения. Начали вроде с простоых задач. Собрав пачку граблей пришли к тому что бы сделать хотя бы что-то. В итоге получилось что есть расширение, которое подхватывается,но как буд-то не подает признаков жизни.

Могу я у знающих людей попросить пример расширения , которое просто при заходе на любую страничку форума будет делать запись в файл "helo world" ?
er107
phpBB 2.0.18
Сообщения: 1172
Стаж: 14 лет 5 месяцев
Благодарил (а): 208 раз
Поблагодарили: 74 раза

Re: [3.3] Hello world

Сообщение er107 »

gamgam писал(а): 31.08.2025 16:21 будет делать запись в файл "helo world" ?
Где? В теме форума? (Если что я не знающий, просто знающим людям будет непонятен ваш вопрос).
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12835
Стаж: 14 лет
Благодарил (а): 160 раз
Поблагодарили: 2319 раз

Re: [3.3] Hello world

Сообщение Татьяна5 »

gamgam писал(а): 31.08.2025 16:21 В итоге получилось что есть расширение, которое подхватывается,но как буд-то не подает признаков жизни.
Расширение в студию, посмотрим что не так
gamgam
phpBB 1.0.0
Сообщения: 3
Стаж: 2 дня

Re: [3.3] Hello world

Сообщение gamgam »

ext/dark/hello/
├── composer.json
├── ext.php
└── event/
└── listener.php

composer.json

Код: Выделить всё

{
  "name": "dark/hello",
  "type": "phpbb-extension",
  "description": "Simple test extension",
  "version": "1.0.0",
  "license": "GPL-2.0-only",
  "authors": [
    {
      "name": "Dark",
      "homepage": "https://example.com"
    }
  ],
  "require": {
    "php": ">=7.1",
    "phpbb/phpbb": ">=3.3.0"
  },
  "extra": {
    "display-name": "Hello Extension",
    "soft-require": {
      "phpbb/phpbb": ">=3.3.0,<4.0.0@dev"
    }
  }
}

ext.php

Код: Выделить всё

<?php
namespace dark\hello;

class ext extends \phpbb\extension\base
{
}

listener.php

Код: Выделить всё

<?php
namespace dark\hello;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;

class listener implements EventSubscriberInterface
{
    static public function getSubscribedEvents()
    {
        return [
            'core.page_header' => 'on_page_header',
        ];
    }

    public function on_page_header($event)
    {
        file_put_contents(__DIR__ . '/hello.log', date('Y-m-d H:i:s') . " Hello world\n", FILE_APPEND);
    }
}
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12835
Стаж: 14 лет
Благодарил (а): 160 раз
Поблагодарили: 2319 раз

Re: [3.3] Hello world

Сообщение Татьяна5 »

Не хватает:
config/services.yml (синтаксис невидимых символов - только пробелы)

Код: Выделить всё

services:
    dark.hello.listener:
        class: dark\hello\event\listener
        tags:
            - { name: event.listener }
И в слушателе добавить бы конструктор, хотя бы сейчас пустой
gamgam
phpBB 1.0.0
Сообщения: 3
Стаж: 2 дня

Re: [3.3] Hello world

Сообщение gamgam »

Ну да, коварство в деталях. GPT оказывается про этот файл не вкурсе.
Лог, он мне на написал, но сама функция выполняется. Это в общем имеено то, что и было нужно ) Спасибо !

Код: Выделить всё

<?php
namespace dark\hello\event;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;


class listener implements EventSubscriberInterface
{
    static public function getSubscribedEvents()
    {
        return [
            'core.page_header' => 'on_page_header',
        ];
    }

    public function on_page_header($event)
    {
        die (__DIR__ . '[it works!]');
    }
}

Вернуться в «Для разработчиков»