まえがき
本日、HamZoneコミュニティが阮一峰先生によって紹介されました。 第239号 週刊 特に、急激なアクセス増加により、ウェブサイトには様々な人々が集まりました。その中には、アマチュア無線愛好家や開発者も含まれており、多くの友からの追加リクエストを受け取りました。その後、帰宅後、この文章が頭に浮かびました。
人間のエネルギーは限られているものです。
コミュニティがFlarumを立ち上げから2ヶ月運用している間に、私は何度か試行錯誤を重ね、いくつかのプラグインを開発し、よりアマチュア無線愛好家らしい機能を追加しました。その中で、このフレームワークの強力さを認識し、現在ではプラグインの開発メカニズムおよびプロセスについてある程度の理解を得ています。また、国内での情報が少ない状況を考慮し、早期にドキュメントを作成して、より多くの人が参加できるようにすることを計画しています。本稿および関連するドキュメントは、FlarumCNコミュニティにも投稿されます。
私は主にバックエンドのGo開発を担当しており、他の分野についてもある程度知識があります。今後、可能な限り詳細な手順の説明をさせていただきます。もし誤りや不足点があれば、ご指摘いただけますと幸いです。
まず
もしあなたがPHPの基本的な知識をお持ちで、ComposerやLaravelなどのツールを使用した経験がある場合、次を試してみてください。
もしあなたが、Vue、React、Node.js、Webpackなどの最新のフロントエンド開発手法についてある程度の知識をお持ちで、それらに関連するプラグの開発においては、フロントエンドとバックエンドの両方の知識が必要であることを理解している場合
もしあなたが基本的な運用に関する知識を持っている場合、例えばMySQLやNginxなどの関連ソフトウェアの使用経験がある場合は、
また、ある程度のトラブルシューティング能力、比較的良好なコーディング習慣、関連するドキュメントや知識の検索能力も必要です。
上記のような前提条件がない場合、以下の作業はあなたにとって困難になる可能性があります。
もしあなたがPHPというプログラミング言語に興味をお持ちであれば、私は強くお勧めします。 php.net 公式サイトで学習したり、B siteなどの動画講座を利用したりすることで、他のスキルも同様に習得するには、時間と労力を費やす必要があります。
次
それでは、Flarumについて詳しく見ていきましょう。
これは非常にモダンなコミュニティ/フォーラムフレームワークであり、現在活発なオープンソースコミュニティによるサポートがあります。公式サイトでは、以下のように紹介されています:現代的で、高速、そして無料!
彼は、PHP Laravel フレームを基盤として二次開発を行い、インターフェースには高性能かつ軽量なJavaScriptフレームを使用しています。 Mithril。
MITライセンスに基づいて公開されています。
彼の詳細な情報や概要については、以下のリンクからご覧ください。 フララムに関する情報 または、以下のリンクを参照してください。
もし、Flarumフレームワークでコミュニティを構築している人が誰であるかを知りたい場合は、FlarumCNが提供しています。 地域イベント 入り口での展示は、非常に良い印象を与えます。
ソースコードの推奨
開発の過程で役立つ、代表的なプラグインをいくつかご紹介します。これらの情報が、あなたの開発作業に役立つことを願っています。
外部プラグイン
今後の開発において、特定の機能の実装方法について疑問が生じた場合、多くの場合、Flarumコミュニティやオープンソースプロジェクトのソースコードから解決策を見つけることができます。
内部プラグイン
各 Flarum サイトはそれぞれ独自のコミュニティと特徴を持っており、HamZone コミュニティも同様です。ここでは、今後の開発を円滑に進めるために、いくつかのプラグインを紹介します。
その中には:
二次開発:既存のプラグインをベースに、カスタマイズや適応を行う。
一般公開:倉庫内のファイルへのアクセス
プライベート:内部のセキュリティを考慮し、外部からのアクセスは制限します。必要に応じてご連絡ください。(できれば、アマチュア無線愛好家の方が理想的です)。
動き出す
フララム環境
Flarum フレームを開発環境で実行することは、必須です。
~で インストール | Flarum 非常に詳細な説明が含まれており、まず概要を把握することができます。
ただし、ここでは別のローカルで開発された実行方法を紹介したいと思います。
PHP、Composer、MySQL、Node.js、Webpackなどのローカル環境のデプロイについては、ここでは詳細な説明は省略します。
前後両方の環境が共存するプロジェクトの場合、個人として、以下の方法の使用を強く推奨します。 VSCode コーディングツールを開発し、簡単な修正を加える。
- Git Bash 终端环境(Windows)
- VSCode 插件: PHP Intelephense
Flarum のソースコードファイルをダウンロードします。リポジトリの URL は以下のとおりです:https://github.com/flarum/flarum
`git` コマンドを使って、GitHub から flarum のリポジトリをクローンします。
プロジェクトのルートディレクトリで、VS Code のターミナルを開き、まず以下の操作を行います。
composer のインストール
その後
public/ ディレクトリへの移動
実行
php -S 127.0.0.1:8888

ブラウザでアクセスしてください:http://127.0.0.1:8888/
これにより、「Install Flarum」という文字が表示されます。

データベースの設定内容を入力すると、開発プラグインの基本的な環境が利用できるようになります。
空白拡張ジェネレーター
次に、Flarum 環境で、独自のプラグイン開発プロジェクトを作成する必要があります。これには、コミュニティが提供する拡張機能生成ツールを使用できます。
この投稿では、より具体的な議論が見られます。FriendsOfFlarum によって Flarum の拡張機能を作成する
参考:Flarum のプラグイン拡張の開発ドキュメント。これには、ローカル環境でのモジュールの読み込み方法が記載されています(英語での説明)、Flarum のローカル拡張パッケージをすべて以下に配置することを合意します。 パッケージス/ ディレクトリ内
先日開始したものを妨げるため php -S 127.0.0.1:8888 サービスとして、VSCodeで複数のターミナルを開き、新しいターミナルから実行することができます。
composer 設定:repositories.0 のパスを「packages/*」に設定
もし、さらに詳しい情報が必要な場合は、こちらが参考になる紹介文です。 フララム の二次開発プロジェクト設定ガイド 確認するにあたり、バージョン管理の段階については、個人的には次のように提案します。 パッケージ/* 各フォルダを個別のプロジェクトとして管理します。
現在、プラグインジェネレーターをインストールすることで、その後の複数のプラグイン開発が可能になります。
npmで `@friendsofflarum/create-flarum-extension` をグローバルにインストールする。
先作成した拡張パッケージのディレクトリで、以下のコマンドを使用して、空のファイルを作成して埋めることを続行します。
flarum拡張機能を作成する [ディレクトリ名]
例えば、プロジェクトのルートディレクトリで以下のコマンドを実行できます。
create-flarum-extension パッケージ/flarum-ext-hamzone-tools
成功後、以下のような画面が表示され、彼は最初のプラグインの作成をあなたに案内します。

もし具体的な選択肢がわからない場合は、以下に概要を示します。

したがって、あなたのプロジェクトフォルダは、以下のような構成になっている可能性があります。

例示されているものについて flarum-ext-hamzone-tools プラグインの内容については、次の章で説明します。
プラグインを有効にする
前の手順で、プラグインのテンプレートが正常に作成されました。この時点で、彼は実行に必要な基本的なファイルを持っていますが、フララムの管理画面から有効化できるように、いくつかの簡単な修正を行う必要があります。
プロジェクトのルートディレクトリ composer.json ファイル内に、対応するものを記載 require フィールド追加:
「必要なもの」:
"hamzone/flarum-ext-hamzone-tools": "*@dev"
Flarum の設定ファイルで、以下の変更を行います。
'デバッグ'> はい、
プロジェクトのルートディレクトリでターミナルを実行し、以下のコマンドを実行してください。
composer で hamzone/flarum-ext-hamzone-tools をインストールする:@dev
macOS 上で上記を実行する👆🏻指示、これによりエラーが表示される可能性があります。zsh: 一致するものがありません、以下のような方法を試してみてください。 ~/.zshrc 中央に加える:
no\_nomatch を有効にする

バックエンドのコントロールパネルには、新たに生成されたプラグインが表示されました。

ただし、スイッチをクリックしてプラグインを起動しようとしたとき、「エラー」というメッセージが表示されました。このページを読み込む際にエラーが発生しました。
落ち着いてください。一緒に行きましょう。 storage/logs フォルダ内のエラーの詳細情報を確認してください。
[2023-01-13 15:48:15] flarum.ERROR: InvalidArgumentException: 指定されたパスにファイルが見つかりません: flarum-ext-template\flarum\packages\flarum-ext-hamzone-tools/js/dist/admin.js......
明らかに、フロントエンドに必要なものが欠けている。 dist ファイルは、以下のURLにアクセスしてください。 packages/flarum-ext-hamzone-tools 中に js 以下のフォルダをそれぞれ実行してください:
yarn のインストール
ヤーンのビルド
再度バックエンドインターフェースにアクセスすることで、プラグインを有効化し、デフォルトの出力を取得できます。[hamzone/flarum-ext-hamzone-tools] 管理者様、こんにちは!

これまでに、ローカル開発環境で動作する最初のFlarumプラグインを正常に作成・実行することができました。
現在、既存の少ないドキュメントを参照し、主に以下の投稿を参考にしました。ご協力ありがとうございます。
もし他に疑問がある場合は、チャットグループで議論してください。HamCQ コミュニティ交流グループ
(このグループは、アマチュア無線愛好家を主な対象としています。) && 開発者